V následující modelové situaci provedeme nastavení zrcadlení disků (RAID 1 - mirror) /dev/sdc a /dev/sdb jako softwarový raid s nástrojem mdadm. Zkrácené to znamená následující - nainstalovat balíčky initramfs-tools a mdadm, vytvoření GPT oddílu pomocí gdisk, překopírování rozložení oddílů 1:1 mezi oběma disky s balíčkem sfdisk a konečně vytvoření diskového pole md0. Pro rozumné uživatele je na konci připojen i postup na zašifrování celého diskového pole /dev/md0 pomocí LUKS.
Linux mdadm: Nastavujeme RAID 1
user@server # apt-get install initramfs-tools mdadm #instalace
user@server # lsblk #výpis blokových zařízení (disků)
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111,8G 0 disk ├─sda1 8:1 0 487M 0 part /boot └─sda2 8:2 0 111,3G 0 part └─sda2_crypt 252:0 0 111,3G 0 crypt / sdb 8:16 0 1,8T 0 disk sdc 8:32 0 1,8T 0 disk sdd 8:48 0 465,8G 0 disk ├─sdd1 8:49 0 450M 0 part ├─sdd2 8:50 0 100M 0 part ├─sdd3 8:51 0 16M 0 part ├─sdd4 8:52 0 97,1G 0 part └─sdd5 8:53 0 368,1G 0 part
user@server # gdisk /dev/sdc #vytvoření GPT oddílu
GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help):nPartition number (1-128, default 1):EnterFirst sector (34-3907029134, default = 2048) or {+-}size{KMGTP}:EnterLast sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}:EnterCurrent type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300):fd00Changed type of partition to 'Linux RAID' Command (? for help):wFinal checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N):yOK; writing new GUID partition table (GPT) to /dev/sdc. The operation has completed successfully.
user@server # gdisk -l /dev/sdc #kontrola rozložení
GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sdc: 3907029168 sectors, 1.8 TiB Logical sector size: 512 bytes Disk identifier (GUID): ABE09C96-41FB-4BD8-B53F-2BAAC39BD654 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 3907029134 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 3907029134 1.8 TiB FD00 Linux RAID
user@server # sfdisk -d /dev/sdc | sfdisk /dev/sdb #překlonování rozložení oddílů
Checking that no-one is using this disk right now ... OK Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 3907029168 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 >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Script header accepted. >>> Created a new GPT disklabel (GUID: ABE09C96-41FB-4BD8-B53F-2BAAC39BD654). Created a new partition 1 of type 'Linux RAID' and of size 1,8 TiB. /dev/sdb2: New situation: Device Start End Sectors Size Type /dev/sdb1 2048 3907029134 3907027087 1,8T Linux RAID The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
user@server # lsblk #výpis pro kontrolu
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111,8G 0 disk ├─sda1 8:1 0 487M 0 part /boot └─sda2 8:2 0 111,3G 0 part └─sda2_crypt 252:0 0 111,3G 0 crypt / sdb 8:16 0 1,8T 0 disk └─sdb1 8:17 0 1,8T 0 part sdc 8:32 0 1,8T 0 disk └─sdc1 8:33 0 1,8T 0 part sdd 8:48 0 465,8G 0 disk ├─sdd1 8:49 0 450M 0 part ├─sdd2 8:50 0 100M 0 part ├─sdd3 8:51 0 16M 0 part ├─sdd4 8:52 0 97,1G 0 part └─sdd5 8:53 0 368,1G 0 part
user@server # mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sdc1 /dev/sdb1 #konečně vytvoření raidového pole
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
user@server # mdadm -D /dev/md0 #kontrola stavu diskového pole
/dev/md0:
Version : 1.2
Creation Time : Mon Oct 16 14:09:35 2017
Raid Level : raid1
Array Size : 1953382464 (1862.89 GiB 2000.26 GB)
Used Dev Size : 1953382464 (1862.89 GiB 2000.26 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 16 14:10:51 2017
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Resync Status : 0% complete
Name : server:0 (local to host server)
UUID : e05778a4:a880b7bb:d25596aa:d6a9c4d3
Events : 15
Number Major Minor RaidDevice State
0 8 33 0 active sync /dev/sdc1
1 8 17 1 active sync /dev/sdb1user@server # cat /proc/mdstat #kontrola stavu diskového pole
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[1] sdc1[0]
1953382464 blocks super 1.2 [2/2] [UU]
[>....................] resync = 0.5% (10889088/1953382464) finish=247.7min speed=130679K/sec
bitmap: 15/15 pages [60KB], 65536KB chunk
unused devices:
A jdeme RAID šifrovat :-)
user@server # cryptsetup -y -v luksFormat -c aes-xts-plain64 -s 512 /dev/md0 #vytvoření šifrovaného oddílu
WARNING!
========
This will overwrite data on /dev/md0 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Command successful.user@server # cryptsetup luksOpen /dev/md0 luks1 #dešifrování šifrovaného oddílu
Enter passphrase for /dev/md0:
heslo k zašifrování
user@server # mkfs.ext4 /dev/mapper/luks1 #formátování oddílu na ext4
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 488345104 4k blocks and 122093568 inodes
Filesystem UUID: 06a2cca9-c547-4892-a5f7-008648333fd4
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
A pro jistotu i cvičně dešifrovat a mountnout
user@server # cryptsetup luksOpen /dev/md0 disk #dešifrování šifrovaného oddílu
user@server # mount /dev/mapper/disk /mnt/disk #mount dešifrovaného oddílu
# Data tedy budou dostupná na /mnt/disk
Komentáře (0)
Přidat komentář