FreeBSD

Про ZFS и L2ARC

У одного моего друга есть NAS на (7+2)-6Tb. Семь дисков в RAIDZ2 (том под данные), два диска в зеркале (том под бэкапы). И был там L2ARC-кэш на полтерабайта, Patriot Hellfire. Поскольку полтерабайта это мало (см ниже), этот кэш обслуживал только активные данные для работы, но не том с бэкапами, а для тома на котором живут торренты было secondarycache=metadata. И, в общем, было видно, что полтерабайта - мало.

Посмотрел один мой друг в прайслисты, посмотрел в обзор терабайтных SSD...

FreeBSD + 10G + Samba tune

Все утро онанировал подбирал параметры FreeBSD/Samba. Остановился пока на таком:

/boot/loader.conf

hw.ix.max_interrupt_rate=16000 hw.ix.rx_process_limit=4096 hw.ix.tx_process_limit=4096 hw.ix.rxd=4096 hw.ix.txd=4096 

smb4.conf

read raw = yes write raw = yes socket options = TCP_NODELAY SO_RCVBUF=2097152 SO_SNDBUF=2097152 large readwrite = yes 

Уменьшение размера буферов до 1Mb снижает скорость чтения процентов на 5, до 512к - процентов на 20.
Все кроме третьей строчки (socket options) скопировано с предыдущего ящика, может оно тоже не нужно (но на нем - было нужно).

И, в принципе, они такие...

FreeBSD 10G Samba speed

В догонку к позавчерашнему.

Samba 4.8 пишет (и читает) со скоростью дисков, во всяком случае пока этих дисков 3 (и писать можно ~600MB/sec).

Вот на netstat видно, например:

# netstat -I ix0 1 input ix0 output packets errs idrops bytes packets errs bytes colls 70801 0 0 636957461 24946 0 1661685 0 65798 0 0 592032063 24596 0 1639413 0 69470 0 0 624964103 24249 0 1615565 0 64249 0 0 578234195 23707 0 1579277 0 69714 0 0...

Q: FreeBSD-FreeBSD remote shell speed

Уважаемые FreeBSD-веды!

у меня в подполе происходит Я гоняю zfs snapshots с ящика на ящик таким примерно способом:

zfs send .... | mbuffer -s 64k -m 64m | ssh -c aes128-gcm@openssh.com box2 zfs recv

И между двумя ящиками на i3 все происходит хорошо: ssh с этим шифром бегает на скорости 900+MB/sec, реально zfs recv может принять 450-500 и я всем доволен.

Но на Atom C3758 все не так радужно: одно ядро медленнее раза в 4 и ssh...

Q: FreeBSD и CPU C-states

Вот мучаюсь в непонятках, есть две FreeBSD-коробки с одинаковым ядром и одинаковыми же настройками (потому что сделаны клонированием), разница в железе (и процессор и сетевые карты и материнки - проще сказать что одинаковое.... ничего там нет одинакового).  И у одной процессор жрет ~1ватт (если на коробке ничего не происходит), а на другой - целых два (по powermon)

Видимая разница в C-states.

Коробка №1 (i3-6300T), которая 0.95-1вт

# sysctl dev.cpu.0 dev.cpu.0.cx_method: C1/mwait/hwc C2/mwait/hwc C3/mwait/hwc dev.cpu.0.cx_usage_counters: 1902729 301031 6950232 dev.cpu.0.cx_usage: 20.78% 3.28%...

Про Самбу 4.6

У одного моего друга есть файлсервер с самбой. Прочитал я он CVE-2017-7494, пригорюнился и сделал pkg install samba46 (была 4.3).

Прошла неделя и зоркий глаз заметил, что утрешний бэкап, который укладывался в час (начинался в 7 и к восьми всяко завершался) теперь идет иногда и больше двух часов. Пригорюнился.

Запатчил 4.3 патчем от 4.4-4.6 (благо там 4 строчки и место это не менялось) - и стало обратно хорошо, скорость на интерфейсе при бэкапе/верификации 2-2.5 гигабита (упирается дальше в диски), а с 4.6 было 1+. Конфиг, понятно, один и тот же.

Вполне возможно, конечно, что если потюнить, ну там удалить из smb4.conf те настройки производительности, которые для 4.3 были сделаны, а поставить какие-то другие, то станет обратно хорошо. Но времени и сил на это жалко.

Эх!

Увы, до круглой цифры (скорости чтения) не дотянуло (и не дотянет, уже более медленная зона на дисках пошла), а было так близко.....

Нет, ничего не сломалось, просто я понял что

  • запасного диска в шкафу нет, а это неправильно, опять ужаленым в жопу метаться по магазинам если что
  • Гелиевые диски - систематически холоднее обычных, градусов эдак на 6, а лето на носу (они и систематически медленнее на несколько процентов, но мне хватает).
  • Если закупаться, то сейчас, бакс вот на рупь вверх уже прыг, а цены - еще нет.

Ну и купил гелиевый, а обычный - на полку.

Про zfs primarycache

У одного моего друга есть FreeBSD бокс, на нем ZFS, Samba и 10G-ethernet. К этому боксу подключена рабочая станция с Acronis Workstation, которая туда делает бэкапы.

Бэкапы делаются на отдельный zfs pool, я подумал "а нахрена бэкапами размывать кэши" и сказал этому пулу

zfs set primarycache=metadata zbackup

Получилась такая фигня: если у Acronis-а запустить проверку бэкапа, то:

1. C ZFS-тома читается ~150-200 мегабайт/сек:
$ zpool iostat zbackup 1
...
zbackup     2,36T  2,17T    195      0   195M      0
...

Заканчивая неделю ZFS

Заканчивая неделю (или полуторамесячник) ZFS, финальные тесты. Списал данные, добавил еще один диск, прежде чем возвращать данные - маленько потестировал

Оборудование: i3-6300T, 32GB RAM, 7 дисков (6Tb HGST: 4 штуки 7k6000 и 3 штуки He8), диски подключены к чипсетному контроллеру (Intel C236).

Окружение: FreeBSD 11.0-p4

Методика: собираем пул, делаем на нем один датасет с размером блока 1m или 128к, пишем 200-гигабайтный файл
dd if=/dev/zero of=/zdata/testset bs=1m count=200k
Затем читаем этот файл той же командой dd в /dev/nul с...

(надеюсь) в последний раз про ZFS

Перебросил один (самый большой) датасет туда-сюда, старый пока не стирал.

И вот сравнение ("чтение реального микса файлов"):

Было (правда я через 20+ минут задолбался ждать и нажал Ctrl-C, за это время оно прочитало 200Gb):

$ tar cf - datasetname |  dd of=/dev/null
^C418664864+0 records in
418664864+0 records out
214356410368 bytes transferred in 1414.744341 secs (151516005 bytes/sec)

Стало (аналогично, прервал прочитав 200Gb):

$ tar cf - /archive2/datasetname |  dd of=/dev/null
^C421087495+0 records in
421087494+0 records out
215596796928
...

Slow ZFS read: проблема не в коде а в данных на диске

Картинка, вероятно, уже надоела, но вот вам очередная порция тестов.

Ящик: Intel i5-2400, 16Gb RAM, Adaptec 5805, 5x4Tb (HGST NAS) в JBOD, собраны в RAIDZ2.

Свободного места достаточно:

$ zpool list
NAME      SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
zdata    18,1T  5,11T  13,0T         -     9%    28%  1.00x  ONLINE  -

настройки в loader.conf:

vm.kmem_size="15G"
vfs.zfs.arc_max="14G"

Загружаем FreeBSD 11.0-RELENG:...

FreeBSD ZFS read: 11-STABLE тоже поломана

Все оказалось еще гораздо хуже, чем казалось на первый взгляд:

  1. FreeBSD 11-STABLE тоже поломана
  2. И поломка - это свойство, возникающее при записи файла.

Давайте значит по порядку.

I. Другой ящик:

  • i3-6300T, 32Gb RAM, 6 дисков по 6Tb в RAIDZ2, диски подключены к контроллеру на материнке.

II. Берем FreeBSD 11-STABLE, конкретно вот эту вот:

FreeBSD home-gw.lexa.ru 11.0-STABLE...

FreeBSD ZFS read speed: они убили кенни!

Вчерашний вечер у меня тоже прошел не скучно.

Я взял уже знакомый вам стенд:

  • i5-2400, 16GB RAM
  • LSI 9211-8i (FW 16.0, IT-mode, без BIOS)
  • 7 дисков WD1003FBYX

И начал делать так:

  1. Скачиваю с ftp.freebsd.org FreeBSD-NN.y-RELEASE-amd64-memstick.img
  2. Пишу его на флешку
  3. Загружаюсь с этой флешки (никаких дополнительных настроек!)
  4. Собственно тестирую:

zpool create -O recordsize=nn ztest raidz2 /dev/gpt/DISK[0-5/6]
...

Про ZFS prefetch (2)

Продолжение вот этого вот текста, теперь более систематически.

АХТУНГ. Все описанные ниже эксперименты (и прошлая серия экспериментов) - относятся ТОЛЬКО к FreeBSD-12. На 10.3-11.0 (РЕЛИЗНЫХ, в -stable все похоже хуже) картина принципиально другая и деградации скорости чтения при маленькой глубине префетча нет.

Провел вчерашнее утро, а затем - вечер за стендом,  который схематически показан на картинке (там 7 дисков, потом...

Про ZFS prefetch

Вынесу из комментариев, потому что это важное, чтобы потом самому было легче найти.

АХТУНГ. Все описанные ниже эксперименты (и прошлая серия экспериментов) - относятся ТОЛЬКО к FreeBSD-12. На 10.3-11.0 (релизных! со -stable все сложно) картина принципиально другая и деградации скорости чтения при маленькой глубине префетча нет.

Собрал я тут ZFS массив на следующие (я надеюсь) лет пять: 6x6Tb, в RAIDZ2 (2 - потому что я устал срочно бегать в магазин, покупать замену вылетевшему диску), диски HGST, правда разные...

Когда в руке молоток - все кажется гвоздями

Наконец я могу, не ограничиваясь скоростью источника, померять скорость своих Samba-ящиков:

Сначала оно жрет его в ARC - и оттуда горб (1+Gb/sec) на первые гигабайт 8, потом легкий провал (сброс кэша), потом sustained на ~600.

Конфиг:

  • 8x1Tb WD Re (дискам 4 года, они ~100+ со шпинделя выдают, надо будет поменять постепенно на те, которые 150+ могут, а больше и не надо уже)
  • Adaptec 5805 (и
  • ...

ZFS L2ARC performance

Преамбула:

(У одного моего друга) есть ZFS-pool такой вот конфигурации:

  • i5-2400 CPU @ 3.10GHz
  • avail memory = 16477163520 (15713 MB)
  • FreeBSD 12.0-CURRENT #4 r302772M
  • 8xTb SATA в RAIDZ2.
    Подключены к Adaptec 5805, сделаны simple volumes по одному диску
  • 3 консумерских SSD-шки (OCZ Vertex4, OCZ Agility 3, Intel 520) в L2ARC
    • я пробовал объединять их в gstripe, счастья не увидел особого
    • и сейчас они как отдельные диски подключены.

На пуле лежат RAW-фоточки к которым я хожу...

Samba 10G Performance

Картинка для привлечения внимания. Сервер FreeBSD+Samba, клиент: Windows 8.1 ,

Есть у меня FreeBSD-шный бокс с ZFS к которому я хожу по Samba по 10G-линку. И до вчерашнего дня производительность не радовала, 200Mb/sec получались только изредка, а вообще типичная скорость была лишь немногим выше гигабита. При этом

  • MTU 9000 на этом линке - глючило (временами отваливалась сеть)
  • А практически такой же бокс (сторадж -
  • ...

Q: FreeBSD ctld changes?

Я вот знаю, у меня читатели - они и за FreeBSD посматривают :)

Вот есть у меня FreeBSD box с iscsi, раздает RAID-том (адын штук) по 10G. Конфиг такой:

target iqn.2015-04.com.lexa:target0 {
        auth-group no-authentication
        portal-group pg0
        lun 0 {
        path /dev/aacd0
        }
}

И работало оно на FreeBSD-11 снэпшот от 2 марта сего года.

Но я же не могу просто так, чесотка, решил все это хозяйство поапгрейдить. svn up; make; make install; reboot...

Взорвалась? Склеим обратно!

Алаверды к вот этому, чтобы не затерялось в комментах.

Починили:

  1. fcntl: https://svnweb.freebsd.org/base?view=revision&revision=277211
  2. sigaction: https://svnweb.freebsd.org/changeset/base/277236

Большое спасибо Константину Белоусову за.

Но я в ужасе убежал на 9.3 и посижу на 9.x еще годик.

Pages

Subscribe to FreeBSD