имеется софт-рейд (mdadm) raid1-зеркало (тончее, два). изначально был один 500Г диск, на нем вся файлопомойка. потом докупил я другой, на 1Т (с расчетом на то, что когда-нибудь, в светлом будущем, поменяю маленький тоже на терабайтный), и собрал из них реёд-зеркало.
недавно маленький диск стал чего-то отваливаться из массива с кучей всякого в dmesg, ну и светлое будущее наступило - купил новый на терабайт.
сейчас конфигурация такая: на каждом из дисков есть два раздела - один на 15Г (маленькое зеркало для бэкапов) и второй... так, тут выясняются интересные подробности - на маленьком диске, оказывается, раздел на 400Г, а на большом - на 900, ну а зеркало в итоге - по размеру меньшей из половинок... блин, я думал, разделы одинаковые))
srv> ~$ lsblk | grep -v "sda"
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 465,8G 0 disk
├─sdb1 8:17 0 1K 0 part
├─sdb2 8:18 0 400G 0 part
│ └─md126 9:126 0 400G 0 raid1 /media/svalka
└─sdb5 8:21 0 15G 0 part
sdc 8:32 0 931,5G 0 disk
├─sdc1 8:33 0 1K 0 part
├─sdc2 8:34 0 912,4G 0 part
│ └─md126 9:126 0 400G 0 raid1 /media/svalka
└─sdc5 8:37 0 15G 0 part
srv> ~$ sudo fdisk -l /dev/sdb /dev/sdc
[sudo] password for srv:
Disk /dev/sdb: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000cc92b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 137901959 137899912 65,8G 5 Extended
/dev/sdb2 137901960 976768064 838866105 400G fd Linux raid autodetect
/dev/sdb5 4096 31459240 31455145 15G fd Linux raid autodetect
Partition table entries are not in disk order.
Disk /dev/sdc: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2ab8c2ce
Device Boot Start End Sectors Size Id Type
/dev/sdc1 63 40066109 40066047 19,1G 5 Extended
/dev/sdc2 40066110 1953525167 1913459058 912,4G fd Linux raid autodetect
/dev/sdc5 126 31455269 31455144 15G fd Linux raid autodetect
Partition table entries are not in disk order.
вот данные самого зеркала:
srv> ~$ sudo mdadm -D /dev/md/svalka
[sudo] password for srv:
/dev/md/svalka:
Version : 1.2
Creation Time : Wed Aug 10 19:52:01 2011
Raid Level : raid1
Array Size : 419431892 (400.00 GiB 429.50 GB)
Used Dev Size : 419431892 (400.00 GiB 429.50 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Nov 25 20:40:22 2016
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : srv:svalka (local to host srv)
UUID : 992b06af:42dd8b35:bc2a3843:e50f2e6b
Events : 5494
Number Major Minor RaidDevice State
3 8 18 0 active sync /dev/sdb2
2 8 34 1 active sync /dev/sdc2
srv> ~$ cat /proc/mdstat
Personalities : [raid1]
md126 : active raid1 sdb2[3] sdc2[2]
419431892 blocks super 1.2 [2/2] [UU]
unused devices: <none>
маленькое на 15Г сейчас просто остановлено, но с ним проще - там ничего ресайзить не надо.
а из большого же я хочу изъять 500Г диск, взамен него поставить 1Т, расширить зеркало до 900Г.
каков должен быть порядок действий? мне видится как-то так:
0. разметить новый диск. по идее, туда бы просто склонировать таблицу разделов.
чем это сделать? parted? sfdisk? или может оказаться, что размер (или там количество блоков) чуть-чуть не совпадает, и лучше ручками?
1. sudo mdadm /dev/mdXXX --fail /dev/sdb2
массив перейдет в состояние degraded
2. sudo mdadm /dev/mdXXX --add /dev/sdXY
где sdXY - раздел на новом диске
3. sudo mdadm --grow -z max
или как-то так...
4. sudo resize2fs -p /dev/mdXXX
да, фс - ext2
5. ...
6. profit!
все верно? или, может быть, можно до добавления нового диска, когда массив будет в degraded, сделать grow и resize2fs, а потом уже добавлять второй диск, чтобы оно только они раз засинкалось? такой фокус возможен? а то сначала синкать, а потом все эти гровы и фс-ресайзы - опять синкать-пересинкать.. или там синкать особо нечего будет?
и еще бонусный вопрос: старый 500Г диск хочу оставить и иногда rsync-ать на него содержимое массива (допустим, за вычетом кинца, когда оно превысит 400Г). можно как-то превратить его из половинки рейда в просто раздел, чтобы фс со всем файлОм осталась при этом как есть? типа обнулить там рейд-суперблок, чтоб был просто раздел и на нем просто фс?