FreeBSD

Про 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 еще годик.

Ура, она взорвалась!

Много лет я пользуюсь на своих FreeBSD-серверах некоторыми бинарниками, собранными в незапамятные времена, под FreeBSD6. Работают (под compat6x), каши не просят, все устраивает (устраивало?).

Но, ура, наконец оно (воспроизводимо) сломалось:

  • (cd /usr/src; svn up; make то-се-инсталл) - получается текущая 10.1
  • И, ура, эти бинарники перестают запускаться, cannot lock pidfile пишут мне. Truss чего-то такое показывает про bad address.

Воспроизвел на двух машинах - вводимом в эксплуатацию сервере (и сейчас, да, всю команию обратно, вот значит подарочек мне) и на виртуалке. На виртуалке вот просто классически, там была 10.x от 27 июля - и работало, а свежий сегодняшний svn up все поломал. Ну, зашибись.

Я, понятно, могу произвести раскопки, найти ЕЩЕ ТЕ исходники, пересобрать под 10.1 (не уверен, что соберутся текущими компиляторами, гы) и все такое. Но блин, не до грибов мне сейчас!

Аналогично, писать багрепорты не могу, потому что "вот у меня происходит подземный стук" - плохое описание проблемы, а сделать другое за вменяемое время - не вижу способа.

Буду откатываться на 9.3, благо претензий к ней у меня нет.

P.S. На Linux на серверах не перехожу вот примерно по этой же причине (помимо ZFS) - есть нажитые непосильным трудом бинари, они нужны, а заниматься археологией и пересобирать это под Linux - ну нет никаких сил.

P.P.S. Как хорошо, что на домашнем стораджбоксе не затеял переход на 10.1. Собирался ведь, а получился бы точно геморой на всю задницу.

Q: FreeBSD 10

Два вопроса
  1. Кто-нибудь уже использует FreeBSD 10 в бою?
  2. В апгрейде с 9.2 есть грабли какие-нибудь?

FreeBSD ZFS Q

А вот тут у меня проект на празднички, расширить ZFS с 5x3Tb до 6x3Tb.

Ну значит надо побэкапить, пересобрать, поресторить.

Бэкаплю:

zfs snapshot zdata/files@20140104
zfs send zdata/files@20140104 | zfs recv zfiles/files

zdata - это мой массив, zfiles - пул на диске, вставленном через SATA.

Дальше делаю zpool export zfiles. Размонтировались, типа. Вынимаю диск.

Дальше хочу посмотреть как оно. Опять вставляю диск, zpool import и хрена лысого:

pool broken, репайред быть не может.

Такое было и при хотсвапе через SATA и при хотсвапе через USB-dock.

Вопросы:

  • ЧЯДНТ?
  • какого хрена, собственно? Если сделали export, диск же размонтирован и можно вынимать?

Ну то есть я сейчас спишу 10Tb файликов по сети на NTFS-диски, но злобу уже затаил...

UPD: Дима, Слава, я благодарен за советы. Но вот сейчас я, весь на нервах, еще раз пишу 10Tb файликов, уже на винду (точнее, в два потока, на винде и на FreeBSD, но не суть важно).

Всякие предложенные идеи - я обязательно попробую. Но сначала том надо нарастить, место ж кончается.

FreeBSD 9-STABLE + USB3 = ?

И, блин, алаверды к предыдущему посту.

Флешка, SanDisk Extreme 64Gb USB3, куплена чтобы у FreeBSD-box работать загрузочным диском, SATA-порты кончились. И что бы вы думали:

ugen1.1: <XHCI root HUB 0x1b6f> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.2: <Extreme SanDisk>
...

Подземный стук возвращается!

Две недели после установки таймера в HPET все было хорошо. А вчера подземный стук вернулся, а сегодня - повторился.

С теми же симптомами:

  • Cron встал.
  • "часы стоят" - при запуске top и подобного что рефрешится по таймеру - не рефрешится.
  • named: POKED TIMER в логах
  • cat /dev/urandom >/dev/null не поднимает частоту процессора, так и лежит на 200 (это, вероятно, оттого, что таймер
  • ...

Про подземный стук

Рассказываю:

Вот этой вот проблеме

kern.timecounter.hardware=HPET
вроде бы помог. Ну то есть сегодня утром все было хорошо, ничего не замерзло.

named[...]: *** POKED TIMER *** тоже пропали, нету в логах.

Буду продолжать наблюдения.

От тайка они пухли, а от украдки - дохли

Уважаемые ученые!

У меня в подполе происходит подземный стук стала странно себя вести FreeBSD 9.1

А именно: она замерзает.

Это домашний сервер, на котором ночью никаких процессов нет (я в рамках поиска проблемы даже periodic убрал) и утром я нахожу его в следующем состоянии:

  • Оно с виду живое, можно залогиниться
  • Если запустить top или systat - то вместо обновления раз в несколько секунд - экран обновляется раз в секунд 10-30 (а может и медленнее)
  • Если запустить netstat 1, то вместо печати суммарного трафика раз в секунду - печатается заголовок и более ничего не происходит (впрочем, дольше нескольких десятков секунд я не ждал)
  • По reboot - убиваются процессы, а дальше я не знаю т.е. на экран оно ничего не выводит, диски не синкает. Всякий раз перегружаю ресетом.
  • Если делать на машину scp - то идет медленно (~3MB sec), при этом sshd съедает целое ядро, судя по top. Samba тоже работает медленно, вместо 150-250 MB/sec (по 10G) получается скорее 30MB/sec.
  • В логах - тишина, за исключением вот этого вот:
    May  8 00:07:24 home-gw named[1406]: *** POKED TIMER ***
    May  8 00:18:16 home-gw named[1406]: *** POKED TIMER ***
    May  8 00:30:25 home-gw named[1406]: *** POKED TIMER ***
    May  8 00:50:52 home-gw named[1406]: *** POKED TIMER ***
    May  8 01:31:10 home-gw named[1406]: *** POKED TIMER ***
    
Изначально была гипотеза, что оно зависает в каком-то low-power state. Сейчас гипотеза - что просто встает таймер.

Пока переставил таймер с TSC-low на HPET, но что бы еще такое посмотреть?

Проблема усугубляется тем, что специально вызвать такое состояние я не могу, оно к утру становится таким, а в течение дня - не засыпает (ну там жизнь всякая, почта ходит, бэкапы бэкапятся и ведет себя нормально.

Pages

Subscribe to FreeBSD