Чтобы добавлять сообщения и комментарии, .

@Hawat:
Hawat

О каком Ынтерпрайзе может идти речь, если оно из коробки не умеет софтовый mdamd RAID? Нет конечно можно через пляски с бубнами накатить debian на raid, потом туда добавить proxmox, потом чидеть копаться в логах в попытках понят что за нафиг, почему не работает и может оно в итоге заведется...

@easyjohn:
easyjohn

Завершил перенос всего и вся. Думал сделаю дня за два, получилось чуть больше двух недель.
Как же хорошо, что я когда-то давно разделил стор и апликухи. Даже самба, раздающая этот стор в отдельной виртуалке, что говорить о всяких торрентах.
Сейчас бы заколебался все это обновлять. А так переподсунул по старым путям nfs и все взлетело.

@easyjohn:
easyjohn

Теперь вопрос стоял, какую выбрать компрессию для домашней файлопомойки.
Сравнил экстремальные варианты: недавно появившийся в zfs lz4 и gzip-9.
Lz4 в интернете поют дифирамбы, очень быстрый, хороший, жмет только то что может жать, скорость чтения и записи заметно ускоряется и т.п.
В нашей работе с виртуалками у меня очень хорошие показатели, примерно 1:2 сжатие lz4 на рабочих сторах, и примерно 1:6 сжатие gzip-5 на баккапе.

Другое дело с файлопомойкой, в большинстве своем забитой несжимаемым контентом — музыка, фото, видео, кое-какой софт.
Записав первые 2Tb инфы я получил 2% выигрыша на lz4. Честно говоря, я ожидал хотя бы 10%. Но, впрочем, тоже плюс.
А т.к. большинство инфы записывается редко, а читается то же не сказать что бы часто — решил попробовать максимум — gzip-9.
Скопировал еще раз и получил.. те же 2%! (я проверял. если писать легко-компрессируемые файлы, то все работает, разница lz4/gzip видна)
То есть на моих данных смысла в gzip нет вообще никакого. Плюс такая картина по скорости чтения/записи:
на lvm — 222/128 mb/s
на zfs с lz4 — 238/110 mb/s,
на zfs с gzip-9 — 186/10 mb/s
Ну, собственно, в данном случае gzip никак не подходит, максимальная компрессия не дает выигрыша (или дает менее 1%), но при этом скорость записи падает до 10 mb/s, что за пределами комфорта.

@easyjohn:
easyjohn

Вот это вообще выносит мозг тем, кто классические рейды хорошо знает:
12x 2TB:
raid10, 6x2pairs 10 terabytes ( w=569MB/s , rw=230MB/s , r=687MB/s )
raid50, 2x6raid5 17 terabytes ( w=494MB/s , rw=252MB/s , r=616MB/s )
raid50, 4x3raid5 14 terabytes ( w=459MB/s , rw=245MB/s , r=623MB/s )
24x 2TB:
raid10, 12x2pairs 20 terabytes ( w=511MB/s , rw=214MB/s , r=673MB/s )
raid50, 2x12raid5 38 terabytes ( w=492MB/s , rw=276MB/s , r=971MB/s )
raid50, 8x3raid5 28 terabytes ( w=463MB/s , rw=245MB/s , r=870MB/s )
Пятый рейд практически не отличается по скорости от 10-ки! Особенно скорость записи. Неужели они действительно победили write drawback пятого?
Я, кстати, у себя подобное наблюдал, что в raidz1 у меня не было большой разницы с 10, но точных измерений провести не успел.

@easyjohn:
easyjohn

Нашел гарантийку. Таки 3 года гарантии и они истекли чуть менее года назад.
За одно цена — 2650 рублей за 2tb! Напомню, сейчас такой 6500р.

@easyjohn:
easyjohn

Получилось на zfs провести фокус с созданием raid5 массива только на 2 дисках из трех, как я привык это делать на mdraid.
Делается фейковый фаил, который занимает пару килобайт, но репортит полный размер:
# dd if=/dev/zero of=/tmp/disk.img bs=1 seek=4T count=1
создаем пул:
# zpool create poolA raidz1 /dev/sda /dev/sdb /tmp/disk.img
и фейк сразу выводится в оффлайн, что бы туда ничего не начало писаться:
# zpool offline poolA /tmp/disk.img
Все, имеем пул в дегрейде из 2 дисков, можно залить данные, высвободить еще один диск и добавить к пулу, после ресильвера будет ок.

@easyjohn:
easyjohn

Вечером таки закончился ребилд, так что я вынул пару винтов с бедами и прокатился до юлмарта.
Пессимистично получилось, старой базы серийников у них нет в нерабочее время, но гарантия на такие винты должна быть около 2 лет, по словам товарища на приемке.
Если это действительно так (поищу сегодня чек), то я попал на два 2tb винта.
Посмотрел за одно ценник текущий — 6.5-7 тыр за винт! Это 13-14 тысяч. Помнится покупал я их чуть ли не по 2.5 тыр.

@easyjohn:
easyjohn

А вот хрен. Снял я копию скажем с sdb (диск из mdraid) с помощью ddrescue, потом залил обратно на этот же винт (успешно!), ставлю на ребилд — опять ошибка:
kernel: blk_update_request: critical medium error, dev sdb, sector 399482128
kernel: raid5_end_read_request: 4 callbacks suppressed
kernel: md/raid:md127: read error not correctable (sector 399449432 on sdb1).
kernel: sd 4:0:11:0: [sdb] UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x08
kernel: sd 4:0:11:0: [sdb] Sense Key : 0x3 [current]
kernel: sd 4:0:11:0: [sdb] ASC=0x11 ASCQ=0x0
kernel: sd 4:0:11:0: [sdb] CDB: opcode=0x28 28 00 17 cf 9d 10 00 00 50 00
kernel: blk_update_request: critical medium error, dev sdb, sector 399482128
kernel: md/raid:md127: Disk failure on sdb1, disabling device.\x0amd/raid:md127: Operation continuing on 2 devices.
kernel: md: md127: recovery interrupted.

Теперь придется идти долгим путем. Запускаться с копии а битые винты попробовать вернуть в юлмарт.

@easyjohn:
easyjohn

Сделал копию дисков с ошибками из рейда mdadm на новые диски через ddrescue. Скорость 2тб за 12 часов, но за то параллельно можно что-то делать.
Потом решил, что зря пропадать и залил эти данные поверх обратно на старые винты. При перезаписи сбойные сетора должны бы отремапиться.
Делал через стандартный "dd if=... of=... bs=1M". Скорость 2тб за 6 часов, но за то только один процесс в системе живет, все остальное в фризе. Он их sync'ом что-ли гонит по дефолту?

@easyjohn:
easyjohn

Так, 10 часов на dd_rescue на 2tb, 10 часов на ребилд mdadm 2tb, (тут место для еще одной итерации, если еще один диск взбрыкнет), ~30 часов на копирование 6Tb на временный zfs, ~30 часов на копирование обратно на переделанный zfs.
Итого — неделя и золотой ключик у нас в кармане.

@easyjohn:
easyjohn

Утром, вместо душа, я рекомендую вам принимать
kernel: blk_update_request: critical medium error, dev sdb, sector 360745792
kernel: Buffer I/O error on dev sdb, logical block 45093224, async page read
kernel: md/raid:md0: Disk failure on sdb1, disabling device md/raid:md0: Operation continuing on 2 devices.
kernel: md: md0: recovery interrupted.

ЗЫ Шучу. Обычное дело, сдох диск, во время ребилда вылетел еще один. Натравливаем dd_rescue, перепихиваем другие диски в md0 принудительно, ребилдим.
Рутина, но перенос данных чувствую затянется на всю неделю.

@Melhior:
Melhior

Маленький хинт для людей у которых 2 диска.

mdadm raid1 страдает тем что читает данные в один поток для одного запроса. В итоге получаем чтение с 1-го диска.

Что можно сделать, варианты:

1)Создать по 2 раздела на каждом диске, собрать перекрестно по raid1 и к этим raid 1 подцепить raid0 (статья blog.vpsville.ru Так у меня работает один из серверов уже год

2) Просто на 2-х дисках сделать raid10 с --layout=f2 (mdadm --create /dev/md1 --level=10 --layout=f2 -n2 /dev/sda2 /dev/sdb2) , получим как вариант 1, но без дополнительных блочных устрйоств.

Плюсы — все данные будут читаться любым приложением с обоих дисков(удвоение чтения). Минусы — чуток просядет seek и если 2 процесса будут запрашивать данные — головка на дисках будет метаться в разные части винта.

@seeker:
seeker

что-то я туплю надо уменьшить один из томов mdadm массива.
resize2fs /dev/md2 <size>
mdadm --grow /dev/md2 --size=<size>
это понятно. А как теперь уменьшить разделы из которых собран md2 ? (таблица разделов gpt если это важно)

@vbooh:
vbooh

Оказывается, по умолчанию Ubuntu не грузится в случае наличия развалившегося даже неиспользуемого RAID'а(md) и вываливается в BusyBox от initramfs'а. Исправляется как-то так:
help.ubuntu.com
На Debian и CentOS такого не замечал, хотя возможно это не их особенности, а конкретной инсталляции.

@kitt:
kitt

игрался с mdadm на домашнем компе. проиграл (

@kitt:
kitt

есть спецы по mdadm? у меня на сервере в почту сыпятся сообщения о degraded event
pastebin.com
при этом как видно выше из /proc/mdstat все девайсы активные и работают. В чем тогда проблема?

@Dimez:
Dimez

Это 2 диска в зеркале, сегодня чувак спохватился.
for i in sda sdb; do smartctl -A dev$i | egrep "Real|Pend"; done
5 Reallocated_Sector_Ct 0x0033 099 099 036 Pre-fail Always — 1696
197 Current_Pending_Sector 0x0012 100 001 000 Old_age Always — 112
5 Reallocated_Sector_Ct 0x0033 099 099 036 Pre-fail Always — 1424
197 Current_Pending_Sector 0x0012 100 001 000 Old_age Always — 32
Экстренно добавили 3-й новый диск, массивы синкаются на него, интересно, успеют ли.

@Gem:
Gem

Чтобы ребилд быстрее проходил, убираем лимит скорости фонового перестроения:

echo 200000 > /proc/sys/dev/raid/speed_limit_min
echo 200000 > /proc/sys/dev/raid/speed_limit_max

200000 — это пропускная спосбность в Кб, по умолчанию speed_limit_min = 1000

@maxym:
maxym

Если в процессе обновления ядра появляется ошибка "/usr/sbin/grub-probe: error: no such disk." и ядро не устанавливается, то нужно запустить принудительную проверку device.map

grub-install --recheck /dev/sda
grub-install --recheck /dev/sdb

@AFAIK:
AFAIK

Итак, проблема:
Во время апдейта ядра (с 2.6.26-26lenny2 аж до 2.6.26-26lenny3). Lenny решил, что нет у него никаких рейдов, навыдавал ошибок и написал в /boot/grub/menu.lst, что root у нас теперь /dev/hda10 (даже не представляю, где он это достал, такого устройства и не было ведь никогда), а не md124, как считалось раньше (и в бэкап файла, сцуко, тоже самое написал). Заодно он похоже решил, что раз уж корень у нас на обычном диске, то поддержка RAID при загрузке не нужна. Или поломался mdadm.
Или и то и другое.
В общем, теперь при старте массивы не собираются, даже если указать правильный rootfs.

@Rain:
Rain

/me записал, что делать /boot на RAID1 в mdadm может быть плохой идеей — машина отказывалась грузиться с degraded raid1 (было 2 из 3 винтов, т.е., вполне себе рабочая конфигурация) и ребутилась, не доходя до отображения меню загрузчика, пока не решил попробовать загрузиться с live-flash и не урезал количество устройств RAID до двух (чтобы он не был degraded). После этого все взлетело. Лучше уж держать 2 (3, ...) одинаковых раздела и руками их синхронизировать

@proton:
proton

Да, таки загрузка с рейда началась, но вот что-то не заканчивается.
Ошибок никаких нет (см. пруфпик), но загрузка останавливается :(

@proton:
proton

Продолжая вчерашний вопрос ( #1356319 )
Метадата теперь 0.9.2, ЧЯДНТ?

@proton:
proton

Подскажите, почему система может не грузиться с /dev/md0 (там raid1 софтварный, если что).
Раздел нормальный, т.е. из рабочей системы нормально монтируется, содержимое было скопировано из /dev/sda5 (текущий ) командой cp -i -dpRx /mnt/md0
ЧЯДНТ?
Из grub.conf:
title Gentoo Linux (raid)
root (hd0,0)
kernel /boot/proCore root=/dev/md0
Падает в kernel panic с сообщением "unable to mount root fs"

@SKEW:
SKEW

сделал себе raid 0 на 2 диска, получил увеличение скорости в полтора раза, с 40 до 60 мегабайт в секунду. Оказалось это куда проще, чем можно было подумать

@k1lg0reTr0ut:
k1lg0reTr0ut

скажите, у mdadm есть уровни рейда, в мане они перечислены так: inear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4, raid5, 5, raid6, 6, raid10, 10, multipath, mp, faulty, container. в связи с чем возникат вопрос, raid1, 1, mirror — это вообще одинаковые вещи? чисто логически должны быть одинаковы. но может какие-то различия есть?

@Top4ek:
Top4ek

Жуйк... а как правильно выдернуть из софтрейда битый винт и воткнуть туда новый. После чего пнуть на синхронизацию с уцелевшим винтом?