Pull to refresh

Comments 40

Ну, в DL120 G6 нельзя просто взять и установить еще один диск к четырем имеющимся LFF.
Хотя внешний-то можно — например, подключить USB HDD/SSD, или хранилище какое по iSCSI или NFS.
Второй момент — я и в первой статье не увидел, в чем была причина и необходимость перехода с ESXi на Proxmox/Debian?
Верно — мы и добавили флешку на 8 гигов.
Не представляю как диск с метаданными расширить на сетевом хранилище… во-первых, lvm нужны физические диски, а во-вторых, при потере связи метаданные повредили бы и сами диски с виртуалками.

Переход был вызван тем, что Esxi не видит программный raid. А на дебиан был поднят и soft-raid и lvm

Зато esxi прекрасно работает и с nfs и с iscsi, что могло решить проблему.

Так и проксмокс тоже!

Родной аппаратный RAID для этого сервера (SA P411) б/у — 10-12К рублей на развалах (avito, ebay и иже с ними). Это точно стоило последующего геморроя?
lvm, насколько я знаю, прекрасно прожует и подключенные по iscsi диски (сам пробовал только ради экспериментов, не в продакшне под нагрузкой, разумеется).
iscsi диски — возможно. попробую на досуге. но в любом случае, не вариант расширять на них раздел с метаданными. разве что емкость (но с ней то проблем не было).
по аппаратному — да, можно купить. но 12-14к — это треть стоимости этого сервера. уже не рентабельно.

Если есть возможность подключить внешнее хранилище, определите его как новое и смигрируйте на него диски виртуалки, в онлайне.

смигрирую. а как потом быть с самим разделом LVM?
как я это вижу — развалить пустую группу и пересобрать снова.
только при сборке сначала создать раздел с метаданными и руками задать ему размер в 5 гигов например, а потом все оставшееся место 100%FREE?
ну и переехать виртуалками обратно.

Прекрасно на прод кластера у меня 5 лет работало. Один из рекомендованных проксмоксом вариантов. LVM in iSCSI

Тут немного другая ситуация — когда блочным устройством по iSCSI предполагается нарастить lvm, уже собранный на локальных дисках. Немного бредовато получается, оттого и опасения — но в рамках сервера без полной замены хардов расти некуда.
Да и харды особо не наменять — сервер весьма не новый, и если с >2TB дисками еще проблема как-то решается, то вот гарантированно совместимые харды (Seagate Constellation ES всех серий, HGST A7K2000 серии и пр. подобные) найти будет уже не просто, а современные очень не всегда в старье заводятся (разумеется, речь даже не о дисках с 4К блоком, а о 512e/512n).

Ваши сервисы стоят дешевле 12к рублей?

И посмотрите, не осталось ли snapshot-ов виртуалок в LV.
Promox мог оставить после бекапов. Или может вы сами делали.

Снапы я перестал делать довольно давно.
Места нет. Одной командой в этой статье можно увеличить размер меты. Причем ирония в том, что хватило бы и 500мб

Тогда разве что забекапить ВМ по одной. Удалить вместе с LV. И разбекапить обратно.

все верно. только есть несколько НО.

1) удалить диски виртуалок не получится. потому как, даже процедура удаления требует изменения меты, у которой нет места.
2) забекапить надо куда то. выше ребята в комментах подсказали отличную идею с цеплянием по сети репозитория и переноса дисков туда. идея отличная (в моем случае репы не было и пришлось бы все равно нести в ДЦ USB-диск большой).
Нафиг этот LVM нужен, когда Proxmox из коробки умеет отлично работать с ZFS?

Возможно потому, что ZoL из коробки всё ещё не умеет отлично работать.

Zol отлично работает из коробки. Не хватает только поддержки trim для SSD, но это скорее из-за из параноидально безопасного подхода разработчиков к сохранности данных. Многие производители SSD реализуют trim настолько плохо, что были неоднократные случаи потери данных на EXT4 и других фс. Погуглите.

К сожалению не всё так радужно.
При высокой I/O нагрузке на zfs, даже только на чтение, система начинает залипаться и тупить.
Конкретно Proxmox 5.0 + последний ZoL 0.6.5.11 при работе бекапов.
И это не рабочий сервер под нагрузкой, а тестовый.
Диски правда не SSD.


Если использовать хранилище на LVM / Dir + (ext|x)FS — таких диких лагов не наблюдается.

Если у вас не контейнеры, а виртуальные машины, то диски хранятся на zfs volume (zvol), а для них Proxmox делает по умолчанию размер блока 8кб. Попробуйте использовать больший размер блока (128кб, как в датасетах). Так же могут наблюдаться проблемы с IO из за swap раздела на zfs volume. Попробуйте отмонтировать swap, если проблемы с IO исчезнут, используйте другую FS для SWAP или настройте оптимальный размер блока.

Вообще имея zfs можно вместо бэкапов делать реплики на уровне файловой системы. Это вообще не нагружает систему, т.к. Zfs не нужно сравнивать файлы и совершать какую либо работу, что бы получить разницу между 2 снимками.
Если интересно, поделюсь скриптом.
интересно. поделитесь.
попробую все это собрать на тестовой машине и погонять под нагрузкой.
Так же для swap нужно выставить logbias=throughput, это серьезно уменьшит накладные расходы.
  • используем контейнеры, данные — в датасетах
  • recordsize = 32k
  • без дедупликации
  • включено сжатие lz4
  • arc_max_size = 4G
  • logbias оставлен на latency, на throughput еще хуже лагает
  • swap на отдельном разделе, не на zfs. да и почти не используется.
Ну хотя бы потому, что на сервере всего 10мб ОЗУ
Память не проблема. ARC кэш можно ограничить или отключить через файл
/etc/modprobe.d/zfs.conf

options zfs zfs_arc_max=8299967296 # (по умолчанию 50% от общего объема памяти)

# arc_sys_free — количество памяти которое нужно оставлять свободным. По умолчанию 1\64 от общего объема :)
options zfs zfs_arc_sys_free=6442450944 # (оставлять 6 гб свободной памяти)
#To apply this change immediately without a reboot, issue the command:

echo 8299967296 >> /sys/module/zfs/parameters/zfs_arc_max
echo 6442450943 >> /sys/module/zfs/parameters/zfs_arc_sys_free
По-моему скромному опыту, ZFS не всегда хорошее решение. Имел проблемы с зависаниями виртуалок крутящих MSSQL. В основном это касается слабых дисковых подсистем, там ext4+LVM вполне стабильное и рабочее решение. Плюс ZFS надо памятью кормить
У меня используется PVE+LXC+LVM thin и есть пара моментов
  1. Нужно использовать trim
    man lvmthin
    описано в разделе Using fstrim to increase free space in a thin pool LV При этом уменьшается использование не только Data, но Меtadata
  2. Обязательно использовать мониторинг lvm thin томов, например, через zabbix
а про второй пункт можно подробнее?
Обычный zabbix discovery, который ищет lvm thin pool, lvm thin volume на PVE ноде через zabbix agent За основу я брал share.zabbix.com/operating-systems/linux/lvm-thin-pool-and-lvm-thin-volume-monitoring-template — пришлось поправить сам шаблон (он не импортируется в zabbix 3.2) и userparameter_lvm.conf (выхлоп lvs немного отличается)
у меня в3.5 zabbix отлично импортировался. удобно, спасибо!
По второму пункту есть иные способы загонять данные в zabbix помимо парсинга вывода
lvs -a
и UserParameter в конфиге zabbix?
Я мониторинг lvm пока только так себе вижу

Решил изучит вопрос, т.к. использую LVM-Thin и вот что нашел. Может кому пригодиться
http://manpages.ubuntu.com/manpages/xenial/man7/lvmthin.7.html


Manually manage free metadata space of a thin pool LV
lvextend --poolmetadatasize +100M pve/data

Пример:


#lvs -a
LV              VG              Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data            pve             twi-aotz-- 811,26g             2,51   11,67                           
  [data_tdata]    pve             Twi-ao---- 811,26g                                                    
  [data_tmeta]    pve             ewi-ao---- 104,00m   

#lvextend --poolmetadatasize +104M pve/data

#lvs -a
LV              VG              Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                                                                                                                                        
  data            pve             twi-aotz-- 811,26g             2,51   8,53                                                                                                                                                                                                    
  [data_tdata]    pve             Twi-ao---- 811,26g                                                                                                                                                                                                                            
  [data_tmeta]    pve             ewi-ao---- 208,00m 

vasyakrg Спасибо за лекции по Proxmox!!!

рад что не зря :) да, пришлось подрасти из «тыкающего» в прокс, в «сильно тыкающего» в прокс ))
решение на самом деле простое: если есть сильное желание использовать LVM-Thin — изначально не занимайте +100%FREE места. оставляйте процентов 5-10 свободных. ну и на сам Metasize выдавайте 5-8 гигов. хотя я спустя время все таки ушел: на старых серверах и простых задачах в обычный и предсказуемый LVM, на новых и быстрых — на ZFS

Сори что поднимаю такой старый пост.
По поводу ZFS, как только ZFS ограничить по оперативке (в мое случае я нарадоваться не мог, какой ZFS молодец, какая у него чудесная скорость, пока он не сожрал 100 гигов, я ограничил zfs_arc_max 32), подсистема начинает жестко тупить, скажем виртуалки не могут прокачать да же 5 мегабит, хоть с "Write back" хоть "No cache".
Так же из за arc кеша не всегда понятно, то ли диск умирает, то ли ограничение по кешу в оперативку.
То есть мало того что виртуалка кеширует так еще и zfs со своими уровнями.


И да, прокс с zfs еще не до конца дружит. К примеру при создании zfs на чистых дисках пишет "failed: exit code 1" а в лог, незаметно "contains a corrupt primary EFI label" а? Чо??
А надо использовать -f, но это в консоль надо лезть и в ручную делать. А при некоторых смешных случаях диск с виртуалкой может и не удалиться и в логи капнет "TASK ERROR: zfs error: cannot destroy 'zfs_raid/vm-100-disk-0': dataset is busy". Но узнаете Вы об этом потом, потому что сам proxmox отрапортует что всё удалилось. И опять в ручную lsof и кто там безобразничает.
К чему я?.. А, да. Ну вообщем интеграция proxmox и zfs пока на начальном уровне и может надежнее старый добрый mdadm с ext4.

дружит не до конца, но вот авторы считают ее приоритетной ФС почему-то.
для продолжения дискуссии приглашаю вас в наш клуб любителей ИТ (в том числе и прокса) — t.me/realmanual_group
мы там часто тележим за такие вопросы.
Sign up to leave a comment.

Articles