Prvně koupený disk zinicializujeme:
parted /dev/sdf
GNU Parted 3.5
Using /dev/sdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all] display the partition table, or available devices, or free space, or all found partitions
quit exit program
rescue START END rescue a lost partition near START and END
resizepart NUMBER END resize partition NUMBER
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU Parted
(parted) print
Error: /dev/sdf: unrecognised disk label
Model: ATA TOSHIBA MG09ACA1 (scsi)
Disk /dev/sdf: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0.00TB 18.00TB
(parted) print
Model: ATA TOSHIBA MG09ACA1 (scsi)
Disk /dev/sdf: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00TB 18.0TB 18.0TB primary
(parted) set 1 raid on
(parted) print
Model: ATA TOSHIBA MG09ACA1 (scsi)
Disk /dev/sdf: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00TB 18.0TB 18.0TB primary raid
(parted) quit
Information: You may need to update /etc/fstab.
Je dobré data odlít a kam jinam, než na další disk?
parted /dev/sdb
GNU Parted 3.5
Using /dev/sdb
Welcome to GNU Parted! Type ‚help‘ to view a list of commands.
(parted) print
Error: /dev/sdb: unrecognised disk label
Model: ATA TOSHIBA MG09ACA1 (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: unknown
Disk Flags:
(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0.00TB 18.00TB
(parted) print
Model: ATA TOSHIBA MG09ACA1 (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00TB 18.0TB 18.0TB primary
(parted) quit
Information: You may need to update /etc/fstab.
mkfs.ext4 /dev/sdb1
Přimountujem nově naformátovaný disk na ext4
rsync -avhrptgo –progress –info=progress2 /data/ /backup/
Data přesypána, jdeme rozšířit raid z RAID 1 na RAID 6
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sdc1[1] sde1[2] sda1[0]
17578193920 blocks super 1.2 [3/3] [UUU]
bitmap: 0/131 pages [0KB], 65536KB chunk
mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Sun Apr 10 17:11:56 2022
Raid Level : raid1
Array Size : 17578193920 (16.37 TiB 18.00 TB)
Used Dev Size : 17578193920 (16.37 TiB 18.00 TB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu May 30 12:00:43 2024
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : data:3 (local to host data)
UUID : 5077f7b1:b426c1c9:8a6a7f2c:d59633dd
Events : 486643
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 33 1 active sync /dev/sdc1
2 8 65 2 active sync /dev/sde1
fdisk -l mi ukáže, že tento jeden disk ještě nebyl přidán do raidu:
Disk /dev/sdf: 16.37 TiB, 18000207937536 bytes, 35156656128 sectors
Disk model: TOSHIBA MG09ACA1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 3610AD4C-D9C0-4C34-B561-EC8CEC9FE3D1
Device Start End Sectors Size Type
/dev/sdf1 2048 35156654079 35156652032 16.4T Linux RAID
mdadm –add /dev/md127 /dev/sdf1
mdadm: added /dev/sdf1
Kdybych teď a tady chtěl udělat z RAID1 RAID6, vypíše mi to tento error:
mdadm --grow /dev/md127 --level 6 --raid-devices=4
mdadm: Impossibly level change request for RAID1
Proto řešením v tomto případě (a mějte data zazálohovaná jinde na dalším disku, obětujte ty peníze navíc za tu zálohu všech dat na další disk, stojí to za to), musíme prvně povýšit na RAID 5 a z něho pak na RAID6.
Tento příkaz, nás přesto práskne přes prsty. Dobrá zpráva ale je, že tím, že máme 3 diskový RAID 1 raid, tak budeme mít k dispozici celou kopii RAIDU na 1 odebraném disku z RAIDU a ještě na jednom separé disku, který jsem pořídil navíc, abych měl na obyčejné ext4 kopii všech dat. Takže máme defakto 2 kopie téhož raidu a počítáme s tím, že při konverzi raidu z RAID 1 na RAID 5 může dojít k totální katastrofě a nebude nás to trápit, protože budeme mít jednu kopii téhož na třetím disku RAID 1 a druhou kopii téhož na čtvrtém disku s ext4 partition.
mdadm –grow /dev/md127 –level 5 –raid-devices=3
Tady už ukázka, že nás to prásklo přes prsty, musíte tedy odebrat jeden z disků pryč. Vybereme si jeden disk, jehož značka se nachází v raidu 2x.
mdadm –grow /dev/md127 –level 5 –raid-devices=3
mdadm: Can only convert a 2-device array to RAID5
Měl jsem tam 2x WD Gold disk, takže jeden s názvem /dev/sde1 odeberu:
mdadm /dev/md127 –remove –fail /dev/sde1
mdadm: set /dev/sde1 faulty in /dev/md127
mdadm /dev/md127 –remove /dev/sde1
mdadm: hot removed /dev/sde1 from /dev/md127
mdadm /dev/md127 –remove /dev/sdf1
mdadm: hot removed /dev/sdf1 from /dev/md127
A protože jsme měli 3 diskový raid 1 (možnost výpadku 2 disků), musíme ponížit na 2diskový RAID1, jinak mě to nepustilo dál:
mdadm /dev/md127 –grow –level=5 –raid-devices=2
mdadm: Can only convert a 2-device array to RAID5
zde už přesun na 2 diskový raid 1:
mdadm /dev/md127 –grow –level=1 –raid-devices=2
raid_disks for /dev/md127 set to 2
A odtud můžeme zmigrovat na RAID 5:
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sda1[1] sdd1[0]
17578193920 blocks super 1.2 [2/2] [UU]
bitmap: 45/131 pages [180KB], 65536KB chunk
mdadm –detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Sun Apr 10 17:11:56 2022
Raid Level : raid1
Array Size : 17578193920 (16.37 TiB 18.00 TB)
Used Dev Size : 17578193920 (16.37 TiB 18.00 TB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu May 30 14:16:56 2024
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : data:3 (local to host data)
UUID : 5077f7b1:b426c1c9:8a6a7f2c:d59633dd
Events : 486941
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 1 1 active sync /dev/sda1
mdadm /dev/md127 –grow –level=5 –raid-devices=2
mdadm: level of /dev/md127 changed to raid5
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid5 sda1[1] sdd1[0]
17578193920 blocks super 1.2 level 5, 64k chunk, algorithm 2 [2/2] [UU]
bitmap: 47/131 pages [188KB], 65536KB chunk
cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : active raid5 sda1[1] sdd1[0]
17578193920 blocks super 1.2 level 5, 64k chunk, algorithm 2 [2/2] [UU]
bitmap: 47/131 pages [188KB], 65536KB chunk
md0 : active raid1 sdf1[1]
468717568 blocks super 1.2 [2/1] [_U]
bitmap: 4/4 pages [16KB], 65536KB chunk
unused devices:
root@data:/# ^C
root@data:/# mdadm –detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Sun Apr 10 17:11:56 2022
Raid Level : raid5
Array Size : 17578193920 (16.37 TiB 18.00 TB)
Used Dev Size : 17578193920 (16.37 TiB 18.00 TB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu May 30 14:17:36 2024
State : active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Consistency Policy : bitmap
Name : data:3 (local to host data)
UUID : 5077f7b1:b426c1c9:8a6a7f2c:d59633dd
Events : 486942
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 1 1 active sync /dev/sda1
okamžikem, když zadáme:
mdadm /dev/md127 –grow –level=6 –raid-devices=2
Tak se nelekněme, protože to bude trvat. Za žádných okolností neukončujte příkaz, nebo se neodpojujte. Pokud se potřebujete odpojit, musíte dát disown, aby příkaz doběhl do konce.
No, po pár hodinách jsem zjistil, že se ten command asi freeznul. Protože stroj nakonec zdechnul tak, že nešel rebootnout, power off, nešlo vůbec nic. Po tvrdém resetu stroje jsem naházel disky zpět do raidu pomocí mdadm –add /dev/md127 /dev/sde1
pomocí mdadm –add /dev/md127 /dev/sdf1
Pak je to ukazovatl v cat /proc/mdstat jako (S) spare. Máme 2 diskový raid 5, takže z něho pojďme prvně udělat 3 diskový RAID 5 a až bude hotové tohle, uděláme z něj teprve potom RAID6.
mdadm /dev/md127 --grow --level=5 --raid-devices=3
Po nekonečně dlouhé době přes 5000 minut máme dokončený raid 5 (záleží jestli do něj zapisujete, nebo ne):
resize2fs /dev/md127
A čekejte, že to bude trvat.
mezitím si v druhém okně terminálu můžete koukat, jak vám „pole roste“. Tato operace trvá několik dalších minut. Cca 100GB rozšíření za několik vteřin. V iotop –only mezitím vidíme tohle:
Filesystem Type Size Used Avail Use% Mounted on
/dev/md127 ext4 19T 17T 2.9T 85% /data
po pár minutách:
Filesystem Type Size Used Avail Use% Mounted on
/dev/md127 ext4 25T 17T 8.5T 66% /data
Za dalších cca 8 minut:
Filesystem Type Size Used Avail Use% Mounted on
/dev/md127 ext4 32T 17T 16T 52% /data
Filesystem Type Size Used Avail Use% Mounted on
/dev/md127 ext4 33T 17T 17T 50% /data
Výsledek příkazu vypadá takto:
resize2fs /dev/md127
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/md127 is mounted on /data; on-line resizing required
old_desc_blocks = 2096, new_desc_blocks = 4191
The filesystem on /dev/md127 is now 8789096960 (4k) blocks long.
Souborový systém nebylo nutné odmountovávat, všechno se odehrálo za chodu.
Uživatelé, kteří mají přimountovaný storage na Windows vidějí, jak pole roste před očima:
Následně se podíváme na výstupy příkazů cat /proc/mdstat a mdadm –detail /dev/md127
cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid10]
md127 : active raid5 sdd1[2](S) sdc1[1] sda1[0] sde1[3]
35156387840 blocks super 1.2 level 5, 64k chunk, algorithm 2 [3/3] [UUU]
bitmap: 2/131 pages [8KB], 65536KB chunk
mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Sun Apr 10 17:11:56 2022
Raid Level : raid5
Array Size : 35156387840 (32.74 TiB 36.00 TB)
Used Dev Size : 17578193920 (16.37 TiB 18.00 TB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jun 3 15:29:33 2024
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Consistency Policy : bitmap
Name : data.:3 (local to host data.)
UUID : 5077f7b1:b426c1c9:8a6a7f2c:d59633dd
Events : 533431
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 33 1 active sync /dev/sdc1
3 8 65 2 active sync /dev/sde1
2 8 49 - spare /dev/sdd1
Rozšíření z RAID 5 na RAID 6:
mdadm /dev/md127 --grow --level=6 --raid-devices=4
mdadm: level of /dev/md127 changed to raid6
Po zadání příkazu není seknutá příkazová řádka a probíhá další reshaping operace:
cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid10]
md127 : active raid6 sdd1[2] sdc1[1] sda1[0] sde1[3]
35156387840 blocks super 1.2 level 6, 64k chunk, algorithm 18 [4/3] [UUU_]
[>....................] reshape = 0.0% (1037024/17578193920) finish=9539.2min speed=30709K/sec
bitmap: 2/131 pages [8KB], 65536KB chunk
mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Sun Apr 10 17:11:56 2022
Raid Level : raid6
Array Size : 35156387840 (32.74 TiB 36.00 TB)
Used Dev Size : 17578193920 (16.37 TiB 18.00 TB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jun 3 15:32:13 2024
State : active, degraded, reshaping
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric-6
Chunk Size : 64K
Consistency Policy : bitmap
Reshape Status : 0% complete
New Layout : left-symmetric
Name : data:3 (local to host data)
UUID : 5077f7b1:b426c1c9:8a6a7f2c:d59633dd
Events : 533541
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 33 1 active sync /dev/sdc1
3 8 65 2 active sync /dev/sde1
2 8 49 3 spare rebuilding /dev/sdd1
Po 9000 minutách nekonečného čekání
cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid10]
md126 : active raid6 sdg1[1] sdd1[2] sde1[0] sdc1[3]
35156387840 blocks super 1.2 level 6, 64k chunk, algorithm 2 [4/4] [UUUU]
bitmap: 8/131 pages [32KB], 65536KB chunk
mdadm –detail /dev/md126
/dev/md126:
Version : 1.2
Creation Time : Sun Apr 10 17:11:56 2022
Raid Level : raid6
Array Size : 35156387840 (32.74 TiB 36.00 TB)
Used Dev Size : 17578193920 (16.37 TiB 18.00 TB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Jun 18 00:57:35 2024
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Consistency Policy : bitmap
Name : data:3 (local to host data)
UUID : 5077f7b1:b426c1c9:8a6a7f2c:d59633dd
Events : 711129
Number Major Minor RaidDevice State
0 8 65 0 active sync /dev/sde1
1 8 97 1 active sync /dev/sdg1
3 8 33 2 active sync /dev/sdc1
2 8 49 3 active sync /dev/sdd1
Vložím sem odkaz na pěkný zdroj, kam jsem občas nahlédl a potvrzuji, že uvedený článek funguje.
https://semjonov.de/posts/2016-05/transforming-an-encrypted-array-from-raid-1-to-raid-6/