LINUX.ORG.RU

Proxmox grub /boot

 , , , ,


0

1

Proxmox стоит на двух дисках, на ZFS. Настало время сменить диски на 4шт. в RAIDZ.
Появилась пара вопросов:

1. Как обновляется груб и /boot?
Они есть на обоих дисках, но /boot разделы не в зеркале. При обновлении системы груб и ядро обновляется на обоих дисках, или только на том с которого грузилась система, а на втором годами старый груб и ядро?

2. Зачем на дисках третий раздел на 8 мегабайт?

Если тебе надо зеркало, просто добавь диски в существующее зеркало, ничего не изменяя. Это делается одной командой (или двумя, в зависимости от того, что тебе надо).

Зачем на дисках третий раздел на 8 мегабайт?

Это служебный от ZFS. Когда делаешь zpool create на весь диск, оно делает именно так.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Если тебе надо зеркало

Надо вместо зеркала из 2-х дисков сделать raidz из 4-х.
Последовательность действий предполагаю такую:
1. Отключить сервер и вытащить один диск. 2. Скопировать таблицу разделов с /dev/sda на 4 новых диска.
3. Сгенерировать новые UUID для разделов на новых дисках.
4. Проверить ФС.
5. Поставить груб на каждый диск.
6. Скопировать /boot c /dev/sda1 на каждый диск.
7. Собрать raidz.
8. Выключить виртуалки, и с помощью rsync перенести систему со старого пула на новый.
9. Настроить груб.
10. Отключить старые диски и загрузиться с новых.
11. Удалить старый пул.
12. Если что-то пошло не так, загрузиться с вытащенного диска, и восстановить старый пул

Все правильно, или так не получится?

anonymous
()

Настало время сменить диски на 4шт. в RAIDZ

не правильно вы дядя Федор бутерброд мастрячите :)

а эти новые диски случаем не с 4к сектором?

Minona ★★☆
()
Ответ на: комментарий от Minona

не правильно вы дядя Федор бутерброд мастрячите :)

Ну, ещё лежит sas10k под l2arc, и нормальный ssd под zil. так нормально будет?

а эти новые диски случаем не с 4к сектором?

Не помню вечером смогу посмотреть. Там вд ред, примерно 12-13 года, но без пробега. 512 вероятнее.

anonymous
()
Ответ на: комментарий от anonymous

Какой именно RAIDZ?

Если планируется зеркало из четырёх дисков, то исходный RAID разбирать не нужно, достаточно добавить новые диски в существующий RAID, ZFS это позволяет.

Скопировать /boot c /dev/sda1 на каждый диск

Тебе достаточно одного boot-раздела, просто настрой BIOS/UEFI и загрузчик.

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

Да пофиг на физический размер сектора, ставь 4K на пул вне зависимости от размера сектора. Учитывая, что логический размер сектора даже с физическим 512 часто встречается 4K, то ну нафига?

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Какой именно RAIDZ

Тот, который аналог raid-5

зеркало из четырёх дисков

охохо, такой репликации не планируется, есть же бекапы.

достаточно добавить новые диски в существующий RAID

Да, если-бы всё было так. Я при установке системы выбирал как-раз raidz, с тем чтобы потом добавить в пул дисков, но проверив конфигурацию через некоторое время, обнаружил mirrored пул.

Тебе достаточно одного boot-раздела, просто настрой BIOS/UEFI и загрузчик.

И при отказе этого диска накатывать груб и boot на соседний диск?
Грузиться то понятно, что с одного будет, а вот как на соседних дисках живут загрузчик с ядром непонятно. Отсюда и первый вопрос темы.

anonymous
()
Ответ на: комментарий от anonymous

Тот, который аналог raid-5

Так с этого и надо было начинать.

Если исходные диски в новом RAID участвовать не будут, создай новый пул на новых дисках и rsync'ом данные перенеси, а потом разваливай старый пул и вынимай диски.

охохо, такой репликации не планируется, есть же бекапы.

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

при установке системы выбирал как-раз raidz

Кривые обёртки?

через некоторое время, обнаружил mirrored пул

Это научит проверять результат до боевого использования.

И при отказе этого диска накатывать груб и boot на соседний диск?

Размести boot на отдельном диске (дисках). Если уж использовать ZFS, то на весь диск (диски). Учитывая, что в boot запись на порядки реже, чем в диски с данными, и если диски вращающиеся (HDD), то хватит и одного диска, плюс бэкап.

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

L2ARC на обычном харде?? Ещё более неправильный бутерброд.

zil не даст профита виртуалкам если в них не БД будет крутиться.

По поводу 4к: вопрос задам по-другому с каким ashift будет создан пул, 12 ?

Minona ★★☆
()
Ответ на: комментарий от anonymous

охохо, такой репликации не планируется, есть же бекапы.

Он имел ввиду не 4-way mirror, a raid 10

Я при установке системы выбирал как-раз raidz, с тем чтобы потом добавить в пул дисков, но проверив конфигурацию через некоторое время, обнаружил mirrored пул.

Низя в raidz добавить дисков, можно добавить ещё один raidz и получить аналог raid 50

Низя создать raidz из 2-х дисков, установщик прокса умный, сам поменял тип на mirror :)

Minona ★★☆
()
Ответ на: комментарий от mord0d

создай новый пул на новых дисках и rsync'ом данные перенеси, а потом разваливай старый пул и вынимай диски.

Так и планирую. Выше же писал.

Кривые обёртки?

Ага, установщик proxmox.

Если уж использовать ZFS, то на весь диск (диски).

В чём профит? Преимущества zfs на gpt гуглятся, обратное — нет.

Размести boot на отдельном диске (дисках).

Седьмое устройство в системе, и лишняя точка отказа?

anonymous
()
Ответ на: комментарий от Minona

L2ARC на обычном харде?? Ещё более неправильный бутерброд.

sas10k обычный хард? L2ARC тут для уменьшения количества обращений к дискам. А какой бутерброд правильный?

zil не даст профита виртуалкам если в них не БД будет крутиться.

Есть мнение, что он даст профит в любом случае

По поводу 4к: вопрос задам по-другому с каким ashift будет создан пул, 12 ?

Гугл пишет по этим дискам и 4к и 512, как включу — узнаю. Если 4к, то ashift 12.

anonymous
()
Ответ на: комментарий от anonymous

sas10k обычный хард?

На фоне SSD и 15-тысячники уже не смотрятся. Тут уже большую роль будет играть количество блинов в диске и плотность записи на них. Есть у меня на одном из серваков RAID5 из 5 15к сигейтов по 143Гб, и кроме как последовательным чтением похвастаться ему особо нечем. А в реальной работе он до хорошего SATA SSD всё таки не дотягивает.

zil

Есть мнение, что он даст профит в любом случае

Но сможешь ли ты его почувствовать? Профит-то будет далеко не при всех типах нагрузок.

GAMer ★★★★★
()

4шт. в RAIDZ

3 диска под данные - некошерно =Р

GAMer ★★★★★
()
Ответ на: комментарий от anonymous

zil не даст профита виртуалкам если в них не БД будет крутиться.

Есть мнение, что он даст профит в любом случае

Типичная нагрузка на пул:

zpool iostat 60
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool        821G   107G     45     75  1.02M  1.50M
rpool        821G   107G      2     79  19.0K  1.04M
rpool        821G   107G      8     89   231K  1.57M
rpool        821G   107G     17     92   141K  1.64M
rpool        821G   107G      2     81  18.1K  1.15M
rpool        821G   107G      1     93  14.4K  1.57M
rpool        821G   107G      1     79  8.53K  1.02M
rpool        821G   107G      1     80  15.4K  1.06M

anonymous
()
Ответ на: комментарий от GAMer

А в реальной работе он до хорошего SATA SSD всё таки не дотягивает.

Так под l2arc же, иопсы там не нужны, объём 900 Гб. Для снятия нагрузки как-раз.

Но сможешь ли ты его почувствовать

Наверно нет.

anonymous
()
Ответ на: комментарий от Minona

Ты что-то напутал.

Да, наоборот. Я вчера так за..бался, что мог и не такого набредить.

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

В чём профит?

На HDD — в более равномерном износе.

zfs на gpt

При использовании всего диска в pool ZFS таблицу разделов пишет (GPT), а не RAW. Иначе бы не было служебного раздела в восемь мегабайт.

лишняя точка отказа?

Как раз наоборот: износившийся диск с данными унесёт с собой в /dev/null и boot. Про то, что в boot запись идёт на порядки меньше, чем в RAID, я тебе уже писал (то, что ZFS — CoW, напоминать не надо?). Износ диска будет на порядки ниже, и даже если это будет самый днищевый диск, он проживёт не меньше любого из RAID.

mord0d ★★★★★
()
Ответ на: комментарий от Minona

Низя создать raidz из 2-х дисков, установщик прокса умный, сам поменял тип на mirror :)

Так ZFS и не позволит создать RAIDZ из двух дисков. Насколько я помню, минимум — три (FIXME).

mord0d ★★★★★
()
Ответ на: комментарий от anonymous

sas10k обычный хард?

обычный, с чуть меньшим латенси и большей скоростью sequence io

L2ARC тут для уменьшения количества обращений к дискам

L2ARC by desing есть кэш на SSD(!) для random read, его можно попросить кэшить и sequence read, но это не даст профит если под ним пулл из более 1 диска.

Есть мнение, что он даст профит в любом случае

zil это не write cache, это sync_write_log, профит от него имеют те кто пишет в режиме sync_write, а это в основном СУБД. еще NFS этим страдает и iSCSI, но их можно переключить на async.

А какой бутерброд правильный?

вкусный =)

про L2ARC & ZIL я выше написал.

RAIDZ by desing предназначен для sequence io

и из-за особенностей хранения zfs/zvol records, на пуле с ashift=12 из 4-х дисков у zvol с дефолтным volblocksize=8k ты получишь оверхед в 50% против 33% у raid5, а можешь получить и все 100% как у mirror если они не пофиксили странную кратность выделения (N+1, где N - уровень raidz[1,2,3]) LBA под zfs/zvol records.

Minona ★★☆
()
Последнее исправление: Minona (всего исправлений: 1)
Ответ на: комментарий от anonymous

Так под l2arc же, иопсы там не нужны

нее, L2ARC как раз для iops и нужен, raidz на 4-х HDD выдает те же 500 МБайт/сек seq io. что обычные саташные SSD

Minona ★★☆
()
Ответ на: комментарий от anonymous

l2arc же, объём 900 Гб

кстати.. метаданные L2ARC уменьшают полезный объем у ARC, 900 гигов это слишком

Minona ★★☆
()
Ответ на: комментарий от mord0d

конечно не позволит, я писал про то что это не косяк в скриптах, установщик сам поменял ошибочный выбор на правильный. зеркало единственный очевидный выбор для 2-х дисков, не страйп же мастрячить =)

Minona ★★☆
()
Ответ на: комментарий от Minona

L2ARC by desing есть кэш на SSD(!) для random read

Для совсем random read его объем должен быть сравним с самим пулом, иначе читать с пула всё-равно прийдётся. А для часто запрашиваемых секторов пула есть arc. В связи с тем, что на l2arc вытесняются неиспользуемые данные из arc, вообще сомнительно попадание туда random read секторов, запрошеных с пула 1 раз.

RAIDZ by desing предназначен для sequence io

Так разве zil, в данном случае на отдельном устройстве не увеличивает sequence?

Если zil подключить к существующему пулу, по iostat можно будет посмотреть интенсивность его использования? Или так ничего не будет видно?

anonymous
()
Ответ на: комментарий от mord0d

На HDD — в более равномерном износе.

ОМГ, 1 Гб на диске не будет использоваться.

износившийся диск с данными унесёт с собой в /dev/null и boot.

Так boot же 4 штуки будет, только непонятно, актуальные ли они на дисках с которых не грузились. (первый вопрос в ОП посте)

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

Сегодня попробую смонтировать второй boot, и сравнить содержимое.

anonymous
()
Ответ на: комментарий от anonymous

Для совсем random read его объем должен быть сравним с самим пулом

правильно, поэтому там где много-много iops надо пулл делают на SSD без L2ARC.

В связи с тем, что на l2arc вытесняются неиспользуемые данные из arc, вообще сомнительно попадание туда random read секторов, запрошеных с пула 1 раз.

неа, это заблуждение от того, что в названии используется L2. seq_read выполняется мимо L2 (это поведение меняется параметром), rand_read выполняется одновременно и в L2 и в ARC.

Так разве zil, в данном случае на отдельном устройстве не увеличивает sequence?

1. нет, zil_on_ssd задизайнили для уменьшения sync_write_latency.

2. да =), но в том случае если ты делаешь seq_sync_write маленькими блоками например 4к.

Если zil подключить к существующему пулу, по iostat можно будет посмотреть интенсивность его использования?

конечно можно, zpool iostat -v pool 1

PS: я тебя от использования zil_on_ssd не отговариваю, но их надо 2 в зеркало, при его отказе есть риск получить нерабочий пулл с его последующим ремонтом, а это тот еще гемор..

Minona ★★☆
()
Ответ на: комментарий от anonymous

ОМГ, 1 Гб на диске не будет использоваться.

Причём здесь объём? Механический износ уже отменили?

Так boot же 4 штуки будет

Зачем их четыре, когда загружаться ты будешь всегда с одного (а когда умрёт один, то всегда со "второго")? Про бэкап я уже писал.

только непонятно, актуальные ли они на дисках с которых не грузились. (первый вопрос в ОП посте)

Так возьми и посмотри на версии ядра (file /path/to/your/bzImage показывает версию) и mtime файлов.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Причём здесь объём? Механический износ уже отменили?

Ну это ты равномерный износ как фичу пула на устройстве написал.
Вот будет диск не по 2Тб елозить головками, а по 1,999Тб, прям износ диска от этого возрастёт?

Зачем их четыре, когда загружаться ты будешь всегда с одного

Именно на тот случай если он умрёт.

anonymous
()
Ответ на: комментарий от anonymous

Ну это ты равномерный износ как фичу пула на устройстве написал.

Нет, я писал, что рядом с RAID нет смысла держать boot. Равномерный износ — это небольшой прирост в долгожительство диска.

Именно на тот случай если он умрёт.

Какая разница, настраивать заново уже существующий бэкап на рабочем диске, или настраивать только что залитый boot из бэкапа на какой-нибудь флэшке?

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

я писал, что рядом с RAID нет смысла держать boot

И единственный аргумент, который привёл — износ

это небольшой прирост в долгожительство диска.

1/2000 действительно, небольшой прирост. Такой небольшой, что и писать про него не стоит.

anonymous
()
Ответ на: комментарий от anonymous

Сегодня попробую смонтировать второй boot, и сравнить содержимое.

Смонтировать не осилил. И mount не выводит их в списке смоньтрованных.

Сравнил побитово. Одинаковые. И третии разделы тоже одинаковые. А разделы на которых пул — разные.

anonymous
()
Ответ на: комментарий от anonymous

И единственный аргумент, который привёл — износ

В контексте boot-раздела больше аргументов и нет.

1/2000 действительно, небольшой прирост. Такой небольшой, что и писать про него не стоит.

Если ты считаешь только износ от перезаписи.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

Если уж использовать ZFS, то на весь диск (диски).

В чём профит?

На HDD — в более равномерном износе.

1/2000

В контексте boot-раздела больше аргументов и нет.

Ок.

Если ты считаешь только износ от перезаписи.

Что ещё посчитать? Место на нём быстрее закончится?

anonymous
()
Ответ на: комментарий от mord0d

Т.е. топишь за загрузчик и boot на отдельном устройстве (с сомнительной мотивировкой) ты, а дурака включаю я?

anonymous
()
Ответ на: комментарий от Minona

zpool iostat -v

Подключил zil на тот пул, что есть.
Объём в 20 раз меньше, чем на каждый диск.
Но нагрузка на диски в 3 раза меньше, чем в рабочее время. Нагрузка в выходные не типичная.

anonymous
()
Ответ на: комментарий от anonymous

Загрузка большого файла, через торрент на виртуалке:

              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool        821G   107G    475    153  7.35M  9.10M
  mirror     821G   107G    475    116  7.35M  5.01M
    sda2        -      -    475    116  7.35M  5.01M
    sdb2        -      -      0      0      0      0
logs            -      -      -      -      -      -
  sdc       53.1M   232G      0     37      0  4.09M
----------  -----  -----  -----  -----  -----  -----
Да, одного диска нет.

anonymous
()
Ответ на: комментарий от Minona

zil_on_ssd задизайнили для уменьшения sync_write_latency.

но ведь не только, без отдельного zil у тебя sync запись всё равно сначала пишется в zil, только хранится он на дисках пула и страдает как запись, так и чтение.

anonymous
()
Ответ на: комментарий от Minona

оу, я думал уже запилили что-то реально работающее в openzfs, Ахренс ещё в прошлом году анонсировал начало работ. в соляре-то работает, хехе.

anonymous
()
Ответ на: комментарий от anonymous

так он и не должен отличаться

Нить разговора с подключением zil к старому пулу, пошла после этого комментария.

zil не даст профита виртуалкам если в них не БД будет крутиться.



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

anonymous
()
Ответ на: комментарий от anonymous

но ведь не только, без отдельного zil у тебя sync запись всё равно сначала пишется в zil, только хранится он на дисках пула и страдает как запись, так и чтение.

Именно для low-latency его и запилили. От ssd подтверждение операции приходит на пару порядков быстрее.

Minona ★★☆
()
Ответ на: комментарий от anonymous

И… у тебя торрент стал писаться быстрее? :)

Minona ★★☆
()
Ответ на: комментарий от anonymous

Потестил zil на реальной нагрузке:

              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
rpool        821G   107G      5     22   119K   625K
  mirror     821G   107G      5     21   119K   605K
    sda2        -      -      5     21   119K   605K
    sdb2        -      -      0      0      0      0
logs            -      -      -      -      -      -
  sdc       1.45M   232G      0      0      0  20.9K
----------  -----  -----  -----  -----  -----  -----
lol
В своё оправдание скажу, что в настройках виртуалки от которой ожидалась нагрузка, стоит cache=writeback и iothread=1.

anonymous
()
Ответ на: комментарий от anonymous

cache=writeback

Йоу! т.о. у тебя IO кеширует и виртуалка и ARC и pagecache ?!

Не, ksm конечно сдедупит это все… но нафига?

Minona ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.