У меня типичный небольшой офисный сервер с двумя жесткими дисками, настроенными для RAID-1 (зеркалирование). Каждый диск имеет несколько разделов: один для swap, другие - в нескольких / dev / mdX массивах.
Каждые пару лет один из дисков умирает и заменяется. Обычно замена выглядит примерно так:
# copy partition table from the remaining good disk to the empty replacement disk
# (instead of /dev/good_disk and /dev/new_disk I use /dev/sda and /dev/sdb, as appropriate)
sfdisk -d /dev/good_disk | sfdisk /dev/new_disk
# install boot loader
grub-install /dev/new_disk
# create swap partition reusing the same UUID, so I don't need to edit /etc/fstab
mkswap /dev/new_disk1 -U xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
# hot-add the new partitions to my RAID arrays
mdadm /dev/md0 -a /dev/new_disk2
mdadm /dev/md1 -a /dev/new_disk5
mdadm /dev/md2 -a /dev/new_disk6
mdadm /dev/md3 -a /dev/new_disk7
mdadm /dev/md4 -a /dev/new_disk8
Диски изначально были разделены cfdisk еще в 2009 году, поэтому таблица разделов традиционно выровнялась по границам цилиндров (255 голов * 63 сектора). Это не оптимальная конфигурация для новых дисковых накопителей 4K.
Мой вопрос: как я могу создать набор разделов для нового диска и убедиться, что они правильно выровнены и имеют правильные размеры для моего RAID-массивы (округление приемлемо, я полагаю, но округление, безусловно, нет)?
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1
Как вы сказали, вы можете присвоить его кратным 8, и вы можете сделать это с ошибкой с GNU parted. Предположим, что / dev / sda - старый хороший диск, и / dev / sdb будет новым с размером сектора 4k.
sudo parted /dev/sda unit s print
Запишите размеры разделов. И округлите их до 8. Здесь мы будем использовать округленные числа.
sudo parted --align minimal /dev/sdb
unit s
print
mktable msdos
mkpart primary 64s <64+sda1-1>s
align-check minimal 1
mkpart primary <64+sda1>s <64+sda1+sda2-1>s
align-check minimal 2
mkpart primary <64+sda1+sda2>s <64+sda1+sda2+sda3-1>s
align-check minimal 3
и т. Д.
Если у вас более 4 разделов, вам нужно будет установить четвертый раздел «расширенный», а остальные разделы определяются как «логические».
Отметьте вам рейдовые разделы с помощью рейса ярлыков
toggle 1 raid
toggle 2 raid
и т. д.
print
quit
Я отправлю свое решение, с которым я глубоко недоволен:
sfdisk -d /dev/good_disk > /root/part.txt
vi /root/part.txt
sfdisk /dev/new_disk < /root/part.txt -L
(это делает -L
принимать разделы, не соответствующие границам цилиндров, в противном случае sfdisk прерывается, не меняя ничего). Мне это не нравится, потому что оно подвержено ошибкам и утомительным.
Мне просто пришлось заменить зеркало в одном из моих массивов сегодня, и я решил просто заменить fdisk вместо использования sfdisk. Так как я знаю размеры разделов (только один, в моем случае), и я пошел с большим приводом для замены.
Оригинал - RAID1 из пары ST31500341AS, а сменный диск - ST2000DL003.
Итак, я сделал это:
mdadm /dev/md6 --fail /dev/sde1
mdadm /dev/md6 --remove /dev/sde1
fdisk /dev/sde
cunp 1 enter (для 2048) 3907028736 t fd w В результате получается новый раздел с началом 2048 и концом 3907029167 - для 1953513560 блоков (или 244189195 в блоках 4k) 3907028904 - для 1953513428 блоков (244189178 в 4k блоки). Старый раздел был начат 63 и закончил 2930272064 с блоками 1465136001. Я думаю, что lvm заботится о том, чтобы быть совмещенным с пространством, поэтому все должно быть хорошо. Забыл, что я не могу пройти весь путь до конца диска, , иначе mdadm переключится на использование всего диска, а не на раздел при перезагрузке. LVM, похоже, терпит этот сдвиг, но поставить файловую систему прямо на MD не удалось. Рекомендация заключалась в сокращении раздела по меньшей мере на 256 секторов, поэтому я сделал (3907029167-256) / 8 * 8 в bc
, чтобы получить 3907028904. Результирующий раздел имеет mod 8 == 0 и short на 263 сектора. Эта проблема вызвала меня, когда я сделал это для другого массива: (mdadm /dev/md6 --add /dev/sde1