Для оптимизации использования дисков мы внедрили thin provisioning — технологию, при которой LV выделяется виртуальный размер, но физическое пространство занимается только по мере записи данных.
# Создание thin pool (общий пул для всех тонких LV)
$ lvcreate -L 2T --thinpool thinpool_hosting vg_hosting
Thin pool volume with chunk size 64.00 KiB is created.
Logical volume "thinpool_hosting" created.
# Создание тонкого LV (виртуально 100 ГБ, физически — по потреблению)
$ lvcreate -V 100G --thin -n lv_vm043 vg_hosting/thinpool_hosting
Logical volume "lv_vm043" created.
# Создание ещё 30 LV по 100 ГБ каждый
# Суммарно 3 ТБ виртуального пространства при пуле 2 ТБ
for i in $(seq 44 73); do
lvcreate -V 100G --thin -n lv_vm0${i} vg_hosting/thinpool_hosting
done
# Мониторинг фактического заполнения пула
$ lvs -o lv_name,lv_size,data_percent,metadata_percent vg_hosting/thinpool_hosting
LV LSize Data% Meta%
thinpool_hosting 2.00t 34.21 8.45
Thin provisioning позволил «ХостЛайн» предоставлять клиентам большие диски, зная, что большинство из них никогда не заполняют их полностью. Overcommit 150% — стандартная практика для хостинга.
Для ускорения дисковых операций мы добавили LVM cache — NVMe SSD используется как кэш для массива HDD:
# Подготовка SSD для кэша
$ pvcreate /dev/nvme0n1
$ vgextend vg_hosting /dev/nvme0n1
# Создание кэш-пула на SSD (200 ГБ кэш + метаданные)
$ lvcreate -L 200G -n cache_data vg_hosting /dev/nvme0n1
$ lvcreate -L 1G -n cache_meta vg_hosting /dev/nvme0n1
# Объединение в кэш-пул
$ lvconvert --type cache-pool --poolmetadata vg_hosting/cache_meta \
vg_hosting/cache_data
# Подключение кэша к существующему LV
$ lvconvert --type cache --cachepool vg_hosting/cache_data \
--cachemode writeback vg_hosting/lv_vm042
# Проверка статистики кэша
$ lvs -o name,cache_read_hits,cache_read_misses,cache_write_hits \
vg_hosting/lv_vm042
LV CacheReadHits CacheReadMisses CacheWriteHits
lv_vm042 847293 12451 523847
Режим writeback даёт максимальную производительность (записи кэшируются на SSD), но требует UPS — при потере питания данные из SSD-кэша могут быть утрачены. Режим writethrough безопаснее, но ускоряет только чтение.
Оставить комментарий