디스크 삽입 > 전원 on > 파티셔팅(디스크 수정+RAID 배열 생성) > 포맷팅(파일 시스템 생성) > 마운팅 > fstab > reboot
OS ➡️ Hard Disk
Existing ext4 ➡️ Hard Disk 2
Raid0 ➡️ Hard Disk 2,3
Raid1 ➡️ Hard Disk 4,5
Raid5 ➡️ Hard Disk 6,7,8
*파일시스템 구조 : "ext4" 공통 진행
Linux System(디스크 생성) 참고
기존 디스크를 활용하여 파티셔팅부터 진행
아래 순서를 따라서 진행해주시면 됩니다 ^^
Hard Disk 3~8 , 총 6개 디스크 생성
기존에 있던 디스크 파티션 type을 변환하여 사용
<정리>
fdisk -l /(디스크이름)
[root@localhost ~]# fdisk -l /dev/nvme0n2
Disk /dev/nvme0n2: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe5854d28
Device Boot Start End Sectors Size Id Type
/dev/nvme0n2p1 2048 10485759 10483712 5G 83 Linux
Id : 83으로 'linux'로 되어 있는 것을 확인할 수 있음
<정리>
fdisk /dev/(디스크 이름)
p // print the partition table
t // change a partition type
L // partition type List
해당 경고문은 현재 디스크가 사용 중이라는 것을 경고하고 있음.
해당 상태에서 파티션을 변경할 경우,
데이터 손실이나 시스템 오류가 발생할 수 있음.
아래 과정 먼저 진행!
2-1) 마운트 해제
<정리> umount /dev/(디스크이름+파티션이름) [root@localhost ~]# umount /dev/nvme0n2p1
<정리>
fdisk /dev/(디스크 이름)
p // print the partition table
t // change a partition type
fd // Linux raid auto
w // 저장
[root@localhost ~]# fdisk /dev/nvme0n2
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'.
기존 데이터가 삭제될 우려가 있기 때문에
데이터가 있을 경우 백업 진행
<정리>
sfdisk -d /dev/(기존디스크이름) > /tmp/(기존디스크이름).dmp // 디스크 파티션 정보 덤프
sfdisk -f /dev/(새로운디스크이름) > /tmp/(기존디스크이름).dmp // 해당 정보 복원 , -f : 파티션 테이블을 강제로 작성할 때 사용
ls -l /dev/nvme0n* // 확인방법
[root@localhost ~]# sfdisk -d /dev/nvme0n2 > /tmp/nvme0n2.dmp
[root@localhost ~]# sfdisk -f /dev/nvme0n3 < /tmp/nvme0n2.dmp
Checking that no-one is using this disk right now ... OK
Disk /dev/nvme0n3: 5 GiB, 5368709120 bytes, 10485760 sectors
Disk model: VMware Virtual NVMe Disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3ef068cd
Old situation:
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xe5854d28.
/dev/nvme0n3p1: Created a new partition 1 of type 'Linux raid autodetect' and of size 5 GiB.
/dev/nvme0n3p2: Done.
New situation:
Disklabel type: dos
Disk identifier: 0xe5854d28
Device Boot Start End Sectors Size Id Type
/dev/nvme0n3p1 2048 10485759 10483712 5G fd Linux raid autodetect
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# ls -l /dev/nvme0n*
brw-rw----. 1 root disk 259, 0 Feb 16 08:34 /dev/nvme0n1
brw-rw----. 1 root disk 259, 1 Feb 16 08:34 /dev/nvme0n1p1
brw-rw----. 1 root disk 259, 2 Feb 16 08:34 /dev/nvme0n1p2
brw-rw----. 1 root disk 259, 3 Feb 16 10:03 /dev/nvme0n2
brw-rw----. 1 root disk 259, 11 Feb 16 10:03 /dev/nvme0n2p1
brw-rw----. 1 root disk 259, 5 Feb 16 10:10 /dev/nvme0n3
brw-rw----. 1 root disk 259, 12 Feb 16 10:10 /dev/nvme0n3p1
brw-rw----. 1 root disk 259, 6 Feb 16 10:11 /dev/nvme0n4
brw-rw----. 1 root disk 259, 13 Feb 16 10:11 /dev/nvme0n4p1
brw-rw----. 1 root disk 259, 7 Feb 16 10:11 /dev/nvme0n5
brw-rw----. 1 root disk 259, 4 Feb 16 10:11 /dev/nvme0n5p1
brw-rw----. 1 root disk 259, 8 Feb 16 10:11 /dev/nvme0n6
brw-rw----. 1 root disk 259, 14 Feb 16 10:11 /dev/nvme0n6p1
brw-rw----. 1 root disk 259, 9 Feb 16 10:11 /dev/nvme0n7
brw-rw----. 1 root disk 259, 15 Feb 16 10:11 /dev/nvme0n7p1
brw-rw----. 1 root disk 259, 10 Feb 16 10:11 /dev/nvme0n8
brw-rw----. 1 root disk 259, 16 Feb 16 10:11 /dev/nvme0n8p1
<정리>
// RAID0 -> md0 지정 & RAID1 -> md1 지정
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/(디바이스이름) /dev/(디바이스 이름)
// RAID5 -> md5 지정
mdadm --create /dev/md5 --level=5 --raid-devices=3 /dev/(디바이스이름) /dev/(디바이스이름) /dev/(디바이스이름)
y
// 확인
mdadm --detail /dev/md0,1,5 // State : clean 확인
cat /proc/mdstat
// RAID 배열 정보 저장 (현재 존재하는 모든 RAID 배열의 정보를 /etc/mdadm.conf 파일에 추가)
mdadm --detail --scan >> /etc/mdadm.conf
// initramfs 업데이트 (부팅 시 RAID 배열이 올바르게 인식되도록)
dracut --force
[root@localhost ~]# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/nvme0n2 /dev/nvme0n3
mdadm: partition table exists on /dev/nvme0n2
mdadm: partition table exists on /dev/nvme0n2 but will be lost or
meaningless after creating array
mdadm: partition table exists on /dev/nvme0n3
mdadm: partition table exists on /dev/nvme0n3 but will be lost or
meaningless after creating array
Continue creating array [y/N]? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm --detail /dev/md0
State : clean
mkfs.ext4 /dev/(RAID 디렉토리)
mkfs.ext4 /dev/md0,1,5
// 디렉토리 생성
mkdir md0
mkdir md1
mkdir md5
// mount
mount /dev/md0 /md0
mount /dev/md1 /md1
mount /dev/md5 /md5
// 확인 ,, I/O
cd /md0 // 디렉토리 이동
ls -al // lost+found 파일 찾기
touch ex // 파일 생성
vi /etc/fstab
/dev/md0 /md0 ext4 defaults 0 0 // yy+p -> 해당 줄 복붙
/dev/md1 /md1 ext4 defaults 0 0
/dev/md5 /md5 ext4 defaults 0 0
df -Th // 확인
RAID 공간마다 디스크 하나씩 제거함 (2,4,6)
cat /proc/mdstat
md1, md5 -> 디스크 복구 : 살아남
md0 -> 죽어있는 상태 : 못 살림
md1, md5 -> 파티셔팅부터 진행
// 디스크 추가
mdadm /dev/md1 --add /dev/(추가할 디스크)
mdadm /dev/md1 --add /dev/nvme0n4
mdadm /dev/md5 --add /dev/nvme0n6
md0 -> md0 제거 후, 처음부터 진행
mdadm --stop /dev/md0 // RAID 삭제