CentOS7 RAID 5 구성, parted
[ Parted 란? ]
- Master Boot Record ( MBR )은 32bit 파티션 테이블을 사용하며, 이 32bit 파티션 테이블의 최대크기는 2TB로 제한되며 드라이브당 Primary 파티션은 4개만 가질 수 있다.
- 기본적으로 Linux의 Partition은 MSDOS Label을 가지고 있다. 이는 2TB 이상을 넘겨서 사용할 수 없는데, 이는 즉 fdisk에서는 2TB 이상의 실린더를 컨트롤 할 수 없다는 뜻이다.
- 2TB 이상의 파티션을 설정하거나 생성하기 위해 고안된 것이 parted이다. parted는 설정과 동시에 디스크에 기록된다. 또한, parted는 block 단위가 아닌 MB 단위로 입력한다.
- parted는 GPT 파티션을 지원한다.
[ Parted 사용법 ]
- mklabel // 디스크 라벨을 설정 ( 일반적으로 msdos이며, 2TB 이상을 사용하기 위해서 gtp 사용 )
ex ) mklabel gpt
- mkpart // 파티션을 나눈다.
ex ) mkpart [파일시스템 타입] 시작 끝
- unit // gb로 할건지 tb로 할건지 단위를 정해준다.
- set Number Flag State // 파티션의 flat 상태를 변경한다.
플래그 : boot, root, raid, lvm, ..
- quit
- resize // 파티션 용량을 늘리고 줄인다. (ext2, fat, fat32 에서만 가능 ;;)
ex) resize 파티션번호 시작 끝
- rm Partition Number
- print // 파티션 테이블을 display 한다.
- check
[ parted를 통한 partition 생성 ]
- fdisk -l
파티션 확인
[root@localhost ~]# fdisk -l
..
..
..
Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 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
Disk /dev/sdg: 21.5 GB, 21474836480 bytes, 41943040 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
Disk /dev/sdh: 21.5 GB, 21474836480 bytes, 41943040 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
- parted /dev/sdd
- p // 아무 설정 안하고 p를 눌러보니
Error : /dev/sdd: unrecognized disk label 이란 오류가 뜬다.
- mklabel gpt // 2TB 이하인 경우 msdos 해줘도 무방하다.
- mkpart primary 0 100% // 처음부터 100%까지 파티션을 할당해준다.
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? 경고가 뜨는 이유에 대해서는 아래에 설명하겠다. ( 근데 크게 상관없음 )
( mkpart primary 2048s 10gb ) 이런 식으로 2048s 라고 써주면 오류가 뜨지 않을 것이다.
- unit gb // gb 단위
- set 1 raid on // raid 로 파티션의 플래그 설정해줌
- quit
- lsblk
[root@localhost ~]# parted /dev/sdd
GNU Parted 3.1
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sdd: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel gpt
(parted) mkpart primary 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) unit gb
(parted) set 1 raid on
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 21.5GB 21.5GB primary
(parted) quit
Information: You may need to update /etc/fstab.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 17.5G 0 part
│ ├─centos-root 253:0 0 7.5G 0 lvm /
│ └─centos-home 253:1 0 10G 0 lvm /home
└─sda3 8:3 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─md1 9:1 0 20G 0 raid1 /mnt/md1
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
└─md1 9:1 0 20G 0 raid1 /mnt/md1
sdd 8:48 0 20G 0 disk
└─sdd1 8:49 0 20G 0 part
sde 8:64 0 20G 0 disk
sdf 8:80 0 20G 0 disk
sdg 8:96 0 20G 0 disk
sdh 8:112 0 20G 0 disk
sdi 8:128 0 20G 0 disk
sdj 8:144 0 20G 0 disk
sdk 8:160 0 20G 0 disk
sdl 8:176 0 20G 0 disk
sdm 8:192 0 20G 0 disk
sdn 8:208 0 20G 0 disk
sr0 11:0 1 73.7M 0 rom
sr1 11:1 1 942M 0 rom
※ 첫번째 파티션 영역이 2048s부터 시작하는 이유
현재의 Disk는 LBA(논리 블록 어드레스) 방식으로 접근한다. 이 방식은 Disk의 전체 섹터에 0부터 섹터번호를 붙여 그 번호를 이용하여 섹터에 접근하는 방식이다.
섹터 번호와 물리적 섹터 위치를 짝 짓는 일은 Disk Controller에 내장된 펌웨어가 담당한다. 실제 파티션은 섹터 번호로 구분된 범위인데
1번 파티션은 2048섹터부터 시작한다. 이유는 0번 섹터에는 MBR이 위치하고 1~2047 섹터까지는 Grub의 스테이지가 기록되기 때문이다.
그렇기에 실제적으로 첫번째 파티션의 용량을 parted로 설정할때 시작 위치는 2048s로 시작되어야 한다. 그렇지 않은 경우 아래와 같은 메시지를 띄운다.
- parted /dev/sde
- parted /dev/sdf
- lsblk
[root@localhost ~]# parted /dev/sde
GNU Parted 3.1
Using /dev/sde
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 2048s 100%
(parted) set 1 raid on
(parted) unit gb
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sde: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00GB 21.5GB 21.5GB primary raid
[root@localhost ~]# parted /dev/sdf
GNU Parted 3.1
Using /dev/sdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt
(parted) mkpart primary 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) set 1 raid on
(parted) unit gb
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdf: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 0.00GB 21.5GB 21.5GB primary raid
(parted) quit
Information: You may need to update /etc/fstab.
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 17.5G 0 part
│ ├─centos-root 253:0 0 7.5G 0 lvm /
│ └─centos-home 253:1 0 10G 0 lvm /home
└─sda3 8:3 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part
└─md1 9:1 0 20G 0 raid1 /mnt/md1
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part
└─md1 9:1 0 20G 0 raid1 /mnt/md1
sdd 8:48 0 20G 0 disk
└─sdd1 8:49 0 20G 0 part
sde 8:64 0 20G 0 disk
└─sde1 8:65 0 20G 0 part
sdf 8:80 0 20G 0 disk
└─sdf1 8:81 0 20G 0 part
[ mdadm 을 통한 RAID 5 생성 ]
- mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdd1 /dev/sde1 /dev/sdf1
- mdadm --detail /dev/md5
맨 마지막줄에 spare rebuilding 은 무슨뜻인가... 흠
[root@localhost ~]# mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# mdadm --detail /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Mar 24 06:32:56 2020
Raid Level : raid5
Array Size : 41904128 (39.96 GiB 42.91 GB)
Used Dev Size : 20952064 (19.98 GiB 21.45 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Mar 24 06:33:09 2020
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 13% complete
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : 002e77ea:607304ed:9cf09a8a:7452c32b
Events : 3
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
3 8 81 2 spare rebuilding /dev/sdf1
# mdadm 으로 RAID 5 생성할 때 --force 를 추가해주면
spare rebuilding이 안뜬다...고 한다. 그렇다고 한다.
[root@localhost ~]# mdadm --create /dev/md5 --level=5 --force --raid-devices=3 /dev/sdd1 /dev/sde1 /dev/sdf1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# mdadm --detail /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Mar 24 07:06:14 2020
Raid Level : raid5
Array Size : 41904128 (39.96 GiB 42.91 GB)
Used Dev Size : 20952064 (19.98 GiB 21.45 GB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Tue Mar 24 07:06:27 2020
State : clean, resyncing
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Resync Status : 15% complete
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : b58414e4:6cbe88d8:c6c7d262:1873a04c
Events : 2
Number Major Minor RaidDevice State
0 8 49 0 active sync /dev/sdd1
1 8 65 1 active sync /dev/sde1
2 8 81 2 active sync /dev/sdf1
[ 파일시스템 포맷 & 마운트 디렉터리 생성 & 마운트 ]
- mkfs.ext4 /dev/md5
- mkdir /mnt/raid5
- mount /dev/md5 /mnt/raid5
- df -h
[root@localhost ~]# mkfs.ext4 /dev/md5
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
2621440 inodes, 10476032 blocks
523801 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2157969408
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@localhost ~]# mkdir /mnt/raid5
[root@localhost ~]# rm -rf /mnt/raid6
[root@localhost ~]# mount /dev/md5 /mnt/raid5
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.8M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 7.3G 1.6G 5.4G 23% /
/dev/md1 20G 45M 19G 1% /mnt/md1
/dev/sda1 477M 136M 312M 31% /boot
/dev/mapper/centos-home 9.8G 37M 9.2G 1% /home
tmpfs 98M 0 98M 0% /run/user/0
/dev/md5 40G 49M 38G 1% /mnt/raid5
[ 재부팅 후에도 자동 마운트 시키기 (auto - mount) ]
/dev/md5 ~~ 부분 추가해주기
RAID 6 는 fdisk 로 작업을 할 예정이며 가능하다면 하드디스크 고장도 내보겠음!
'OS,Network,Container' 카테고리의 다른 글
리눅스 LVM 기본 개념 ( Logical Volume Manager ) (0) | 2020.04.17 |
---|---|
CentOS7 RAID 1+0 생성 (2) | 2020.04.17 |
리눅스 tar 아카이브란? tar 개념, 실습 (2) | 2020.04.15 |
CentOS7 RAID1 구성, RAID 개념 (0) | 2020.04.15 |
리눅스 방화벽이란? Firewall (1) | 2020.04.15 |