Я хочу заменить все диски в 10-дисковом raid6 (программный raid linux).
Я мог сделать это, вытащив диск, позвольте массиву перестроиться, промыть, повторить.
Но это займет очень много времени и приведет к 10 перестроениям, что, скорее всего, вызовет гораздо большую нагрузку на все 10 дисков, чем простое чтение каждого диска за один раз.
Мой вопрос таков:
Могу я просто выключить массив и перенести каждый старый диск на новый, а затем запустить массив с 10 новыми дисками?
В идеальном мире я бы построил другой сервер и просто скопировал бы данные по сети, но это не идеальный мир.
Предполагая, что вы не меняете размер дисков (то есть новые диски должны быть по крайней мере такими же большими, как и старые), вполне допустимо (и, вероятно, лучшая идея) использовать dd
скопировать каждый диск. Я сам сделал это, используя ddrescue
на плохих / темпераментных дисках исправить отказавший массив. Вы также можете перейти непосредственно к новому диску. Обязательно установите bs=1M
или что-то в этом роде, чтобы сократить время копирования.
Сначала вы захотите остановить массив и удалить его из своего md
конфигурации, чтобы предотвратить его автоматическую повторную сборку. Предполагая, что у вас есть место только для 10 дисков одновременно, вы можете заменять 5 одновременно. Я бы предложил использовать screen
для защиты от отключения терминала (особенно через SSH) и для одновременного запуска всех 5 команд. Дайте ему поработать, затем переключитесь на другой набор из 5 старых и 5 новых и сделайте то же самое. Вставьте все новые и соберите md
массив.