Dmitry
Ещё подскажите пожалуйста какую репу нужно прописать чтобы в убунту 18.04 можно было бы обновить zfs с дефолтной 7.5
Dmitry
при sync=disabled проблема одного потока по идее не должна приводить к простаиванию vdevs.
А как это работает один процесс сразу пишет в несколько девайсов?
Сергей
А как это работает один процесс сразу пишет в несколько девайсов?
процесс "пишет" в ZFS, а она распределяет запись по нескольким vdev
Dmitry
Понятно, спасибо большое
George
пока транзакция в ОЗУ не закрыта, при перезаписи одного и того же блока будет записана только версия на момент закрытия транзакции, к примеру
George
но задирать буфер в ОЗУ тоже сильно не получится, т.к. это приведёт к тротлингу записи при сбросе транзакций на диск
Сергей
Полная аналогия с бд
так ZFS и есть тот же PG, но для файлов))
George
страйп ничего не дал # sudo zpool create -f -O compression=off -O atime=off -O recordsize=8k -O logbias=throughput -O xattr=sa -o ashift=12 -m /var/lib/test test /dev/disk/by-id/google-data-disk-31 /dev/disk/by-id/google-disk-32 /dev/disk/by-id/google-data-disk-33 # sudo fio --name=random-write --ioengine=libaio --rw=randwrite --bs=8k --numjobs=1 --size=4g --iodepth=1 --runtime=60 --time_based --end_fsync=1 --filename=/var/lib/test/file random-write: (g=0): rw=randwrite, bs=(R) 8192B-8192B, (W) 8192B-8192B, (T) 8192B-8192B, ioengine=libaio, iodepth=1 fio-3.16 Starting 1 process random-write: Laying out IO file (1 file / 4096MiB) Jobs: 1 (f=1): [F(1)][100.0%][w=23.8MiB/s][w=3040 IOPS][eta 00m:00s] random-write: (groupid=0, jobs=1): err= 0: pid=2106293: Thu Dec 3 21:06:22 2020 write: IOPS=39.0k, BW=305MiB/s (320MB/s)(18.2GiB/61191msec); 0 zone resets slat (usec): min=9, max=22532, avg=22.76, stdev=57.36 clat (nsec): min=725, max=7129.2k, avg=1202.51, stdev=8120.37 lat (usec): min=9, max=22541, avg=24.19, stdev=58.45 clat percentiles (nsec): | 1.00th=[ 932], 5.00th=[ 964], 10.00th=[ 988], 20.00th=[ 1004], | 30.00th=[ 1012], 40.00th=[ 1032], 50.00th=[ 1032], 60.00th=[ 1048], | 70.00th=[ 1080], 80.00th=[ 1256], 90.00th=[ 1592], 95.00th=[ 1768], | 99.00th=[ 2096], 99.50th=[ 2448], 99.90th=[15424], 99.95th=[16512], | 99.99th=[28288] bw ( KiB/s): min=140614, max=421872, per=100.00%, avg=318640.91, stdev=70243.46, samples=119 iops : min=17576, max=52734, avg=39830.11, stdev=8780.49, samples=119 lat (nsec) : 750=0.01%, 1000=17.41% lat (usec) : 2=80.97%, 4=1.29%, 10=0.18%, 20=0.12%, 50=0.02% lat (usec) : 100=0.01%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01% lat (msec) : 2=0.01%, 4=0.01%, 10=0.01% cpu : usr=10.03%, sys=85.34%, ctx=3598, majf=0, minf=12 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwts: total=0,2389346,0,1 short=0,0,0,0 dropped=0,0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=305MiB/s (320MB/s), 305MiB/s-305MiB/s (320MB/s-320MB/s), io=18.2GiB (19.6GB), run=61191-61191msec
вообще вы пишете что на фио страйп ничего не дал, но на одном диске у вас было write: IOPS=28.2k, BW=221MiB/s , а на страйпе write: IOPS=39.0k, BW=305MiB/s
George
т.е. практически +50%
Dmitry
Да надо перепроверить результаты тестов, вчера когда гонял тесты был уверен что эффекта не было и 305MiB мы и для одного девайса видели
George
минута и 4Г это мало конечно
George
а на aws говорите сильно лучше было? @dmitry_fomin
Dmitry
а на aws говорите сильно лучше было? @dmitry_fomin
Там другая картина была да, iops и throughout сильно выше были,там логи не успевали приезжать
Nikolay
А что-то давно @Riv1329 ничего не пишет 🙂
riv
А что-то давно @Riv1329 ничего не пишет 🙂
Не пишу, но читаю. Тестирую proxmox backup server - это важно, т.к он использует механизм альтернативный zfs send / receive - qemu dirty bitmap. Пока скажу так: лучше бы они опирались на zfs. Пусть этот подход менее универсален, зато значительно более производительный.
riv
больше всего в pbs убило зависание намертво машины при косяках бэкапа. решил подождать ещё годик...
Пока не столкнулся. Но меня убивает то что после отключения vm, pbs считывает образ vm целиком, чтобы построить bitmap. У меня есть сервер, там 3ТБ образов. Из них 50% (по емкости) отключаются каждый день. Он может час заниматься только перестроением этих bitmap-ов бесполезно насилуя ssd пул и процессор. Но это пол беды. Есть несколько крупных vm хранящих данные на hdd-пуле и там емкость ещё больше. Благо они не часто отключаются. Но если отключится такая vm, то перестроение bitmap-а займет несколько часов и при этом производительность пула будет сильно снижена! Я пока склоняюсь к написанию собственной системы резервного копирования, тотально опирающейся на zfs.
Yury
Пока не столкнулся. Но меня убивает то что после отключения vm, pbs считывает образ vm целиком, чтобы построить bitmap. У меня есть сервер, там 3ТБ образов. Из них 50% (по емкости) отключаются каждый день. Он может час заниматься только перестроением этих bitmap-ов бесполезно насилуя ssd пул и процессор. Но это пол беды. Есть несколько крупных vm хранящих данные на hdd-пуле и там емкость ещё больше. Благо они не часто отключаются. Но если отключится такая vm, то перестроение bitmap-а займет несколько часов и при этом производительность пула будет сильно снижена! Я пока склоняюсь к написанию собственной системы резервного копирования, тотально опирающейся на zfs.
а вот выключенные машины бэкапить не пробовал. звучит тоже дико. я не знаю насколько мой тест будет воспроизводим, но я поставил пбс на одной машине с проксом(инструкцией предусмотренно) и подцепил хранилище через локалхост. что машина, что что хранилище было на zfs на машине из 12 гб оператоса занято виртуалками 6 гб на машине 2 пула общим размером 2ТБ бэкапил машину с виндой из 300 гб фактически занятого места. на 5-7% бэкап обрывается, виртуалка уходит в астрал, помогает только прибитие через kill с последующим запуском
Nikolay
@Riv1329 на баше пишите систему бэкапов ?
riv
а вот выключенные машины бэкапить не пробовал. звучит тоже дико. я не знаю насколько мой тест будет воспроизводим, но я поставил пбс на одной машине с проксом(инструкцией предусмотренно) и подцепил хранилище через локалхост. что машина, что что хранилище было на zfs на машине из 12 гб оператоса занято виртуалками 6 гб на машине 2 пула общим размером 2ТБ бэкапил машину с виндой из 300 гб фактически занятого места. на 5-7% бэкап обрывается, виртуалка уходит в астрал, помогает только прибитие через kill с последующим запуском
Про выключенные машины. И выключенные и включенные, но с перерывом в работе со времени предыдущего бекапа перечитывают диск вм целиком. Что касается бекапа виртуалки уходящей в астрал, такое ощущение, чтотгде-то что-то переполняется. Я кстати не смотрел где он эти битмапы создает. Очевидно же они должны расходовать место на метаданные и на операции CoW: на время бекапа создаётся снимок средствами qemu. Кстати при копировании полностью выключенной vm всеравно запускается qemu процесс как будто с виртуалкой сразу в режиме пауза.
riv
@Riv1329 на баше пишите систему бэкапов ?
Так точно. Есть у кого-нибудь желание помочь? Могу концепцию выложить.
Владимир
Всем привет. Есть пул с миррор(2 диска 10Тб) и 1 раздел на NVME под кеш, я удалил кеш раздел, всё повисло к чёртовой бабушке)). SSH вроде ещё выполняет команду, вроде не завис, но другое соединение по ssh и вообще все виртуалки повисли наглухо. Это нормально? Что можно сделать?
Владимир
Удалил кеш из пула? Или что-то сделал с кэшом, что он перестал работать, но остался в составе пула?
под кеш было выделено 1Тб, но решили сделать вместо 1Тб 100гб, ну и я хотел удалить раздел, потом создать раздел 100Гб и снова добавить в пул как устройство кеша
Yury
Вообще 12Гб оперативки и пулы по 2ТБ... Я бы сказал что оперативки надо ну гигов 16 только на zfs У меня на серверах свободно в районе 30-50Гб озу. Может быть в озу битмап место съедает?
хм, я когда-то читал про рекомендацию 1гб оператоса на 1 тб места хтопом момента переполнения оперативки глазами не видно, но может там резкий скачек имел место
riv
хм, я когда-то читал про рекомендацию 1гб оператоса на 1 тб места хтопом момента переполнения оперативки глазами не видно, но может там резкий скачек имел место
Там в arc есть 2 значения: что-то типа объема частоиспользуемых данных и остальной объем работает как кешь линакс, т.е может вымываться при интенсивном чтении. Я уточню как их посмотреть и как называются. В общем я ограничиваю arc так, чтобы он был не пеньше чем на 30% больше чем первое значение. Практика показала, что от размера arc оно не зависит, когда памяти хватает.
Владимир
Владимир
попытался
Владимир
я даже не знаю удалился ли он
Владимир
всё повисло в процессе выполнения команды
Сергей
и через веб-гуи тоже нет доступа?
Владимир
riv
даже по IPMI висит
Может при этом вебгуй отвечать вполне.
Yury
кстати, может кто кинется рекомендациями или статейкой на тему что делать если на серваке оператоса мало, а зфс хочется?) (без варианта купить оператос)
Владимир
А команды то какой?
zpool remove rpool /dev/nvme0n1p1
Сергей
Не отвечает
пингуется?
Владимир
Владимир
вроде даже какие-то виртуалки работают, но это не точно
riv
кстати, может кто кинется рекомендациями или статейкой на тему что делать если на серваке оператоса мало, а зфс хочется?) (без варианта купить оператос)
В порядке убывания эффективности: Добавить special vdev на ssd (mirror) добавить cach vdev на ssd (не требует отказоустойчивости) и добааить log vdev (mirror) на ssd Желательно пул пересоздать с добавленным special vdev и потом заполнить данными.
Сергей
а сколько памяти всего на сервере?
riv
zpool remove rpool /dev/nvme0n1p1
Странно это. Если есть возмодность, я бы подождал. А большой кеш был?
Yury
а сколько памяти всего на сервере?
это не под конкретную машину а в общем, т.к. в моём заопарке достаточно машин с 12—16 гб, где больше половины памяти занято виртуалками
riv
+
А в диагностическую последнюю консоль не получается переключится? Кстати на hp часто зависает iLo само по себе (как впрочем и у других вендоров, например ipmi на supermicro тоже зависает часто) Рекомендую ребутнуть модуль iLo, это не повредит.
Yury
В порядке убывания эффективности: Добавить special vdev на ssd (mirror) добавить cach vdev на ssd (не требует отказоустойчивости) и добааить log vdev (mirror) на ssd Желательно пул пересоздать с добавленным special vdev и потом заполнить данными.
а ещё в ту же степь вопрос: если зфс собран на ссд то можно ли vdev сделать из разделов этих ссд ?) или лучше просто кеш выключить или свести к минимуму?
Dmitry
Так точно. Есть у кого-нибудь желание помочь? Могу концепцию выложить.
а выложи идею куда-нить на гитхаб, глядишь и подключимся 🙂
Владимир
после включения норм запустился, но устройство кеша не удалено)
Сергей
после включения норм запустился, но устройство кеша не удалено)
лучше бы остановить все ВМ перед подобной процедурой. Чтобы давление на память никто не оказывал
Nikolay
Так точно. Есть у кого-нибудь желание помочь? Могу концепцию выложить.
есть е auto-snapshots и auto-backup вроде так. В моём случае (и думаю большинства) этого хватает вполне. Или вы более
riv
есть е auto-snapshots и auto-backup вроде так. В моём случае (и думаю большинства) этого хватает вполне. Или вы более
Я их не пробовал. Если вы используете, несколько вопросов: - Что произойдёт, если передача снепшота оборвется? - Кто удаляет снепшоты? - Что произойдет если снепшоты долго не передаются и пришло время их удалить? Все сломается после их удаления? - Учитываете ли система ротации бекапов, что псоледний снимок нельзя удалять? - Удобно ли настраивать эту систему если у вас 10 серверов и на каждом несколько десятков машин, каждая из которых использует от одного до 5 zvol?
George
кстати, может кто кинется рекомендациями или статейкой на тему что делать если на серваке оператоса мало, а зфс хочется?) (без варианта купить оператос)
из коробки должно работать, с поправкой на ограниченность кеша в озу, конечно же. Запуск ВМ при наполненном arc может не с первого раза проходить, но это проблемы qemu т.к. он ожидает всё и сразу. При желании просто лимитируется arc то известного размера
George
крутил домашний ПК на 4гб с zfs, всё ок
George
если хочется писать что-то, лучше всего в какой то существующий инструмент контрибьютить
George
наверное много l2arc ?
когда ARC ооочень маленький l2arc не капитально спасает, т.к. сам тоже озу требует
George
до 320байт на блок
George
ну и у меня нет l2arc
George
трипл миррор на блинах
Nikolay
трипл миррор на блинах
как у меня в проде 🤣