서버 설정 · 5 min read · Feb 02, 2026

완전 암호화된 Raid1 LVM 시스템 설정 (Lenny) - 페이지 7

두 번째 드라이브 추가하기

1단계: 파티션 구조 복사하기

모든 것이 설치되고 새 서버가 눈앞에 있을 때, 두 번째 드라이브를 추가할 시간입니다. 지금까지 8GB 드라이브를 사용했습니다. 전원을 끈 후 16GB 드라이브를 추가했습니다. 그러나 그 드라이브는 직접적으로 동기화되지 않습니다. 먼저 몇 가지 작업을 수행해야 합니다.

두 번째 드라이브의 파티션 테이블을 변경하기 전에, 이 명령어를 입력하여 배열의 상태를 확인합니다.

watch -n 6 cat /proc/mdstat

다음과 같은 출력이 나타납니다:

Every 6.0s: cat /proc/mdstat                                                                                                            Sun Nov 30 19:15:15 2008
Personalities : [raid1]
md3 : active raid1 sda4[0]
      4208960 blocks [2/1] [U_]
md2 : active raid1 sda3[0]
      2931776 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
      995904 blocks [2/1] [U_]
md0 : active raid1 sda1[0]
      248896 blocks [2/1] [U_]
unused devices: 

보시다시피, 현재 두 개의 활성 RAID 장치 중 하나만 사용되고 있습니다. 이는 다른 하나를 추가하여 하나의 디스크가 실패하더라도 모든 것이 여전히 작동하도록 해야 함을 의미합니다. “ctrl-c”로 모니터링을 종료합니다.

어떤 하드 드라이브가 어떤 것인지 (이름이 무엇인지) 알아내야 합니다. 다음 명령어를 입력합니다:

fdisk -l

그리고 다음과 같은 출력이 나타납니다:

test:~# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000d3f5d
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          31      248976   fd  Linux raid autodetect
/dev/sda2              32         155      996030   fd  Linux raid autodetect
/dev/sda3             156         520     2931862+  fd  Linux raid autodetect
/dev/sda4             521        1044     4209030   fd  Linux raid autodetect
Disk /dev/sdb: 17.1 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
Disk /dev/md0: 254 MB, 254869504 bytes
2 heads, 4 sectors/track, 62224 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x00000000
Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1: 1019 MB, 1019805696 bytes
2 heads, 4 sectors/track, 248976 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x93b342d4
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/md2: 3002 MB, 3002138624 bytes
2 heads, 4 sectors/track, 732944 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x08040000
Disk /dev/md2 doesn't contain a valid partition table
Disk /dev/md3: 4309 MB, 4309975040 bytes
2 heads, 4 sectors/track, 1052240 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Disk identifier: 0x08040000
Disk /dev/md3 doesn't contain a valid partition table
Disk /dev/dm-0: 3001 MB, 3001085952 bytes
255 heads, 63 sectors/track, 364 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/dm-0 doesn't contain a valid partition table
Disk /dev/dm-1: 1019 MB, 1019805696 bytes
255 heads, 63 sectors/track, 123 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb604b75d
Disk /dev/dm-1 doesn't contain a valid partition table
Disk /dev/dm-2: 4308 MB, 4308922368 bytes
255 heads, 63 sectors/track, 523 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/dm-2 doesn't contain a valid partition table
Disk /dev/dm-3: 4307 MB, 4307550208 bytes
255 heads, 63 sectors/track, 523 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
Disk /dev/dm-3 doesn't contain a valid partition table

현재 사용 중인 드라이브는 /dev/sda이고, 새로 추가한 드라이브는 /dev/sdb입니다. 새 드라이브가 더 크기 때문에 (참고: 더 작은 드라이브는 사용하지 마세요!) 해당 드라이브의 사용 가능한 공간을 부분적으로만 사용합니다. RAID1을 실행하면 어차피 가장 작은 드라이브/파티션보다 더 많은 공간을 사용할 수 없지만, 첫 번째 드라이브가 실패하면 더 큰 드라이브를 구입하여 공간을 확장할 수 있습니다. 다음 명령어를 입력합니다:

sfdisk -d /dev/sda | sfdisk /dev/sdb

2단계: 파티션 구조 수정하기

이제 다음 명령어를 입력하여 “데이터” 파티션을 조정합니다. 나머지 세 개의 파티션 (/boot, swap, /)은 설치 중에 충분히 크게 만들어졌어야 합니다:

cfdisk /dev/sdb

화살표 키를 사용하여 탐색합니다. 파티션 4 (sdb4)를 선택한 다음 삭제합니다.

그런 다음 빈 공간에 새 파티션을 생성합니다. 기본으로 설정하고 모든 공간을 사용하도록 합니다.

새로운 “sdb4”가 생성되며, 그 유형은 “Linux”이지만 “Linux raid autodetect”는 아닙니다. “Type”을 선택하고 (여전히 sdb4가 선택된 상태에서) 파일 시스템 유형으로 FD를 입력합니다. 이제 처음 화면으로 돌아가고 파티션 유형이 “Linux raid autodetect”로 변경되었습니다.

이제 “Write” 옵션을 선택하고 “yes”로 확인합니다. 그런 다음 cfdisk 도구를 종료할 수 있습니다.

3단계: 슈퍼블록 초기화하기

새 드라이브의 각 파티션에서 슈퍼블록을 초기화하기 위해:

mdadm --zero-superblock /dev/sdb1  
mdadm --zero-superblock /dev/sdb2  
mdadm --zero-superblock /dev/sdb3  
mdadm --zero-superblock /dev/sdb4

많은 오류가 발생할 것입니다 - 이는 이전에 사용되지 않은 새 드라이브라면 좋은 일입니다.

4단계: 새 파티션을 RAID 배열에 추가하기

이제 다음 명령어를 실행합니다:

mdadm --add /dev/md0 /dev/sdb1  
mdadm --add /dev/md1 /dev/sdb2  
mdadm --add /dev/md2 /dev/sdb3  
mdadm --add /dev/md3 /dev/sdb4

이 명령어는 새 파티션을 해당 배열에 추가하고 동기화를 시작합니다. 진행 상황을 보려면:

watch -n 6 cat /proc/mdstat

5단계: 새 하드 드라이브에 grub 추가하기

grub는 한 번만 설치되고 위의 명령으로 미러링되지 않기 때문에 grub를 수동으로 추가해야 합니다. 다음을 실행합니다:

grub

그런 다음 grub 프롬프트에서:

root (hd1,0)  
setup (hd1)

첫 번째 명령은 grub가 /dev/sdb1 파티션을 /boot 파티션으로 사용하도록 설정하는 것입니다. 두 번째 명령은 grub가 /dev/sdb의 부트 섹터에 설치되도록 하는 것입니다. grub는 하드 드라이브와 파티션을 “0”부터 세기 때문에 sda는 hd0이고 따라서 sdb는 hd1입니다.

“quit”를 입력하여 grub를 종료하면 이제 lvm으로 암호화된 raid1 설정이 완료됩니다. 각 파티션은 독립적으로 실행할 수 있습니다.

LVM 확장하기

작은 하드 디스크가 실패하고 더 큰 새 드라이브를 추가하는 경우, 최대 크기로 확장하고 싶을 것입니다. XFS로 이 작업을 수행하는 방법을 간단히 설명하겠습니다. 먼저 다음을 실행합니다:

mdadm --grow /dev/md3 --size=max

기억하세요: /dev/md3는 우리의 /data 파티션입니다. 이 명령어로 RAID 배열이 최대 크기로 확장됩니다. 작은 하드 드라이브가 실패하기 전에는 더 큰 드라이브에서 최대 크기로 설정되지 않았습니다. 그 후 시스템을 재부팅합니다 (재부팅 없이 할 수 있는 방법이 있지만, 이렇게 하면 훨씬 간단합니다).

재부팅한 후 다음 명령어를 실행합니다:

pvresize /dev/mapper/md3_crypt

그 후 얼마나 크기를 확장할 수 있는지 알아내야 합니다. 다음 명령어를 실행합니다:

vgdisplay -A

이 명령어는 LVM에 대한 몇 가지 정보를 출력합니다. 다음 줄을 찾아야 합니다:

Free PE / Size  xxxxxxx / yyyy GB

“xxxxxxx”의 값이 중요합니다. 다음 명령어를 실행하고 “xxxxxxx”를 실제 값으로 바꿉니다. 또한 올바른 논리 볼륨 이름을 사용하는지 확인하세요. 제가 생성한 것은 “DATA-DATA_MD3”입니다.

lvextend -l +xxxxxxx /dev/mapper/DATA-DATA_MD3

논리 볼륨 이름이 확실하지 않다면, 다음 명령어를 실행하여 모든 매퍼를 나열합니다:

ls /dev/mapper

그 후 마지막 단계는 실제 파일 시스템을 확장하는 것입니다. XFS는 이를 매우 쉽게 만듭니다:

xfs_growfs /data
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.