So. Pro 21st, 2024

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/

Avatar

By mirra

Hardwaru a počítačům se věnuji již od roku 2003. Za tu dobu jsem poskládal stovky počítačů, opravil tisíce počítačů a vyřešil nespočetně problémů, vad a chyb, se kterými se setkávali uživatelé. Od roku 2005 se zabývám servery, zejména těmi herními, v roce 2007 jsem se začal věnovat Valve Source SDK level designu, který šel od roku 2009 k ledu kvůli studiu Informatiky na univerzitě. Podílel jsem se chvíli i na provozu síťové laboratoře MENDELU, dnes spravuji v jedné osobě cca 100 serverů/diskových polí na univerzitě, řeším IT v malých a středních firmách tak, aby firmy ušetřily nemalé částky při zlepšení kvality a soustředím se na snižování nákladů na IT od licencí až po hardware, software, provádím konsolidace a audity platnosti licencí, které firmám šetří rovněž nemalé peníze. Z velkých firem jsem měl příležitost s dalšími kolegy řešit správu 8000 serverů po celé západní Evropě s vysokou mírou automatizace a poznávání nejrůznějších evropských pracovních mentalit. Dále jsem řešil hybridní cloud ve velké firmě, orientované na trhy střední a východní Evropy. Posledních několik let se věnuji Devops pro velké zákazníky v Azure cloudu, spravuji kubernetes (AKS), Gitlab.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *