Disk Konfiguration

Aus Neobikers Wiki
Zur Navigation springen Zur Suche springen

RAID Setup

Mein RAID Setup mit unterschiedlichen Disks.

Anforderungen:

  1. Eine Disk kann ausfallen, ohne Datenverlust (bis auf den "Verschnitt" in vg_single -> Backup)
  2. Eine Volume Group vg_single nimmt die Partitionen auf, die in kein RAID mehr passen ("Verschnitt")
  3. Alle Daten auf mindestens drei unterschiedlichen Disks, soweit möglich
  4. Alle Daten (Dokumente und VM's) sind verschlüsselt, oder
  5. im RAID5 (Medien: Musik und Filme) über mindestens drei Disks verteilt (cryptdisk möglich, aber nicht notwendig)
  6. Alle aktiven VM's liegen auf der einzigen verschlüsselten SSD
  7. Alle VM's haben ein Snapshot auf einer verschlüsselten Disk
  8. Der XEN-Host und alle VM'S können im Notfall von allen Disks (md0 oder md1) gebootet werden (auf einem beliebigen anderem Rechner, sofern ein USB-Stick mit dem dem LUKS-Key verfügbar ist)

Mein Bootscript liest den LUKS-Schlüssel zum Booten meines XEN-Servers auf mehreren Devices (USB-Sticks oder Festplatten).

Austausch der 2 TB Disk durch eine neue 8 TB Disk

Wo wird die 2TB Disk verwendet?

Welche Disk und welche RAID Verbünde sind betroffen?

# fdisk -l /dev/sdb
Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EFRX-68A
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: 1FB146D4-AEFD-1C4B-90AF-315105C08C34

Device          Start        End    Sectors   Size Type
/dev/sdb1        2048       4095       2048     1M BIOS boot
/dev/sdb2        4096     514047     509952   249M Linux RAID
/dev/sdb3      514048 1049090047 1048576000   500G Linux RAID
/dev/sdb4  1049090048 2097666047 1048576000   500G Linux RAID
/dev/sdb5  2097666048 3907029134 1809363087 862,8G Linux RAID

# cat /proc/mdstat | grep sdb | sort
md0 : active raid1 sda2[2] sdb2[1] sdf2[0]
md3 : active raid1 sde3[2](S) sda3[0] sdb3[1]
md4 : active raid5 sde4[5] sdd4[3] sdc4[2] sda4[0] sdb4[1]
md6 : active raid5 sde6[3] sda6[0] sdb5[1]

Disk aus RAID Verbund lösen

RAID 1: md0

### md0 : active raid1 sda2[2] sdb2[1] sdf2[0]
###       254912 blocks [3/3] [UUU]

# mdadm /dev/md0 --fail /dev/sdb2 --remove /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md0
mdadm: hot removed /dev/sdb2 from /dev/md0

# mdadm --grow /dev/md0 --raid-devices=2
raid_disks for /dev/md0 set to 2

### md0 : active raid1 sda2[1] sdf2[0]
###      254912 blocks [2/2] [UU]

### console (dmesg)
[436568.811061] md/raid1:md0: Disk failure on sdb2, disabling device.
                md/raid1:md0: Operation continuing on 2 devices.

RAID 1: md1

### md3 : active raid1 sde3[2](S) sda3[0] sdb3[1]
###       524287936 blocks [2/2] [UU]
###       bitmap: 0/4 pages [0KB], 65536KB chunk

# mdadm /dev/md3 --fail /dev/sdb3 --remove /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md3
mdadm: hot removed /dev/sdb3 from /dev/md3


### md3 : active raid1 sde3[2] sda3[0]
###      524287936 blocks [2/1] [U_]
###      [>....................]  recovery =  0.2% (1372800/524287936) finish=50.7min speed=171600K/sec
###      bitmap: 0/4 pages [0KB], 65536KB chunk

### console (dmesg)
[437831.642672] md/raid1:md3: Disk failure on sdb3, disabling device.
                md/raid1:md3: Operation continuing on 1 devices.
[437831.681725] md: recovery of RAID array md3
[440886.670057] md: md3: recovery done.

RAID 5:

Zuerst ein Spare Device hinzufügen, bevor der RAID 5 Verbund aufgelöst wird, anschliessend die Disk entfernen.

VolumeGroup vg_single hat 1x 500GB Platz um den Spare für md4 aufzunehmen.

# vgs
  VG        #PV #LV #SN Attr   VSize   VFree
  ssd         1  17   0 wz--n- 232,62g   12,62g
  vg_disk     4   2   0 wz--n-   9,38t <291,20g
  vg_single   2   5   0 wz--n-   3,77t    1,03t
  vm          1   8   0 wz--n- 499,98g   46,98g

# pvs
  PV                     VG        Fmt  Attr PSize   PFree
  /dev/mapper/md2_crypt  vg_disk   lvm2 a--  499,98g <291,20g
  /dev/mapper/md3_crypt  vm        lvm2 a--  499,98g   46,98g
  /dev/mapper/sda7_crypt vg_single lvm2 a--   68,71g   68,71g
  /dev/mapper/sde7_crypt vg_single lvm2 a--   <3,71t <986,73g
  /dev/mapper/sdf3_crypt ssd       lvm2 a--  232,62g   12,62g
  /dev/md4               vg_disk   lvm2 a--    1,95t       0
  /dev/md5               vg_disk   lvm2 a--   <5,26t       0
  /dev/md6               vg_disk   lvm2 a--    1,68t       0

# lvcreate -L 500G vg_single -n spare_md4

# fdisk -l /dev/vg_single/spare_md4
Disk /dev/vg_single/spare_md4: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

# fdisk -l /dev/vg_single/spare_md4
### 1048576000 sectors
# fdisk -l /dev/sdb4
### 1048576000 sectors

RAID 5: md4

Zuerst ein Spare Device hinzufügen, bevor der RAID 5 Verbund aufgelöst wird, anschliessend die Disk entfernen.

### md4 : active raid5 sde4[5] sdd4[3] sdc4[2] sda4[0] sdb4[1]
###       2096623616 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
###       bitmap: 0/4 pages [0KB], 65536KB chunk

# mdadm /dev/md4 --add /dev/vg_single/spare_md4
mdadm: added /dev/vg_single/spare_md4

### md4 : active raid5 dm-37[6](S) sde4[5] sdd4[3] sdc4[2] sda4[0] sdb4[1]
###       2096623616 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/5] [UUUUU]
###       bitmap: 0/4 pages [0KB], 65536KB chunk

# mdadm /dev/md4 --fail /dev/sdb4 --remove /dev/sdb4

### md4 : active raid5 dm-37[6] sde4[5] sdd4[3] sdc4[2] sda4[0]
###       2096623616 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [U_UUU]
###       [>....................]  recovery =  0.0% (157824/524155904) finish=331.9min speed=26304K/sec
###       bitmap: 0/4 pages [0KB], 65536KB chunk

RAID 5: md6

Braucht es eigentlich nicht: Zuerst ein Spare Device hinzufügen, bevor der RAID 5 Verbund aufgelöst wird, anschliessend die Disk entfernen.

Das Spare in den RAID hängen, bevor die neue Disk reinkommt bringt hier nix, denn sobald ich die alte Disk aus dem RAID5 nehme, fängt der SPARE an zu syncen. D.h. bis der Sync fertig ist, ist das RAID online, und bekommt ein Problem wenn eine weitere Disk ausfällt. Also kann ich auch gleich den RAID auf die neue Disk syncen - der RAID Verbund ist damit genauso lange ohne Redundanz wie mit einem Spare.

### md6 : active raid5 sde6[3] sda6[0] sdb5[1]
###       1809098752 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
###       bitmap: 0/7 pages [0KB], 65536KB chunk


# mdadm /dev/md6 --fail /dev/sdb5 --remove /dev/sdb5


### md6 : active raid5 sde6[3] sda6[0]
###       1809098752 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
###       bitmap: 0/7 pages [0KB], 65536KB chunk

Neue Disk in RAID Verbund geben

Alte 2TB (ziehe den richtigen SATA-Stecker) ausbauen, neue 8TB Disk einhängen und entsprechend partitionieren (analog der vorhandenen 8TB Disk).