Насколько я понимаю, это возможно, но я нигде не могу найти прямого ответа о том, как именно это сделать, и я не хочу рисковать потерей данных, экспериментируя с этим самостоятельно, поэтому я спрашиваю здесь.
У меня есть домашний сервер с пятью дисками под управлением CentOS. Один из них — SSD с ОС. Остальные четыре диска — жесткие диски по 4 ТБ, сконфигурированные в RAID10 с mdraid. Используемая файловая система — xfs.
Я думаю попробовать заменить диски 4 ТБ на 8 ТБ. Что именно нужно сделать, чтобы эта замена произошла без перенастройки нового RAID и потери данных?
Details output:
[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Mon Apr 18 12:46:24 2016
Raid Level : raid10
Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jun 13 11:04:41 2016
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : fluttershy:data (local to host fluttershy)
UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
Events : 13440
Number Major Minor RaidDevice State
0 8 1 0 active sync set-A /dev/sda1
1 8 17 1 active sync set-B /dev/sdb1
2 8 33 2 active sync set-A /dev/sdc1
3 8 49 3 active sync set-B /dev/sdd1
решение1
Выполните следующие шаги для каждого диска; замените /dev/sda1
другими дисками по мере необходимости. Вы должны выполнитьвсеэтих шагов для одного диска, прежде чем вы сможете перейти к следующему диску.
- Пометить диск как неисправный, чтобы MD прекратил его использовать:
mdadm --manage /dev/md127 --fail /dev/sda1
- Удалить диск из массива:
mdadm --manage /dev/md127 --remove /dev/sda1
- Физически замените диск.
- Разбейте новый диск на разделы, используя тип,
0xDA
при котором один раздел охватывает весь диск. - Добавьте новый диск в массив:
mdadm --manage /dev/md127 --add /dev/sda1
MD перестроит массив, как только вы добавите сменный диск. Убедитесь, что перестройка завершенадовы переходите к следующему диску. Вы можете проверить состояние массива, запустив cat /proc/mdstat
.
Один развседисков были заменены и массив перестроен, расширьте массив, чтобы заполнить максимальную емкость всех дисков с помощью mdadm --grow /dev/md127 --size=max
. Вы можете изменить размер файловой системы оттуда, чтобы заполнить расширенный RAID; в вашем случае используйте команду xfs_growfs
.
Более подробную информацию о том, как вырастить массив MD, можно найти на сайтеLinux RAID вики.
Как и при выполнении любой другой задачи по работе с диском, перед началом работы следует создать резервную копию.
решение2
Сначала вам нужно будет заменить каждый диск по одному.
Для этого вам нужно «вывести из строя» каждый диск и заменить его новым диском на 8 ТБ. Фактически, если у вас есть свободные порты, вы можете добавить дополнительные диски, а затем выполнить «замену» mdadm вместо того, чтобы удалять диск из рейда и подвергать его более высокому риску отказа.
После того, как вы это сделаете, вам просто нужно будет расширить существующую FS в новое созданное пространство. Похоже, что команда для этого — 'xfs_growfs', однако у меня нет опыта работы с xfs, чтобы объяснить, как именно это сделать.
Как всегда, держите наготове резервные копии (а RAID — это не резервная копия!).