XFS로 Linux 소프트웨어 RAID 5를 쉽게 확장 할 수 있습니다. 모범 사례?


13

우분투 머신을 Samba 공유를 사용하는 Windows / Linux / Mac 클라이언트 용 파일 서버로 사용합니다. 데이터를 앞뒤로 이동할 필요없이 하드 드라이브를 추가하기 만하면 쉽게 확장 할 수 있어야합니다.

이것이 내가 지금까지 한 일입니다. 네 번째 하드 드라이브를 성공적으로 추가했습니다. 이제 이것이 어떻게 수행되어야하는지 아는 것이 좋을까요? 내가 뭘 잘못하고 있거나 더 잘할 수있는 것은 무엇입니까?

초기 3 개의 드라이브 배열 만들기

세 개의 빈 드라이브 인 / dev / sdb, / dev / sdc 및 / dev / sdd로 시작했습니다.

먼저 모든 드라이브에 빈 파티션을 만들었습니다.

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

세 개의 디스크 모두에 빈 RAID 파티션을 만들면 RAID5 배열을 만들었습니다.

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

이제 RAID5 어레이가 생성되었으며 이미 구축되고 있습니다. 시간이 걸리지 만 새로운 물리적 LVM2 볼륨 생성을 진행할 수 있습니다.

$ pvcreate /dev/md0

이제 새로운 볼륨 그룹을 만들어 봅시다 :

$ vgcreate vd_raid /dev/md0

그런 다음 해당 볼륨 그룹 내에 새 논리 볼륨을 만들어야합니다. 먼저 생성 된 볼륨 그룹의 정확한 크기를 파악해야합니다.

$ vgdisplay vg_raid

크기는 물리적 범위로 "전체 PE"를 나타내는 행에서 볼 수 있습니다. 그것이 509라고 상상해 봅시다. 이제 사용 가능한 모든 공간을 차지하는 새로운 논리 볼륨을 만드십시오.

$ lvcreate -l 509 vg_raid -n lv_raid

마지막으로 해당 논리 볼륨 위에 파일 시스템을 만들 수 있습니다.

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

새로 생성 된 RAID 어레이를 사용하려면 디렉토리를 생성하고 마운트해야합니다.

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

이제 사용할 준비가되었습니다. 그러나 재부팅 후 자동으로 마운트하려면 RAID 지오메트리를 mdadm의 구성 파일에 저장해야합니다.

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

그런 다음 RAID 배열을 자동으로 마운트하는 / etc / fstab에 다음 행을 추가하십시오.

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

이제 RAID 어레이를 사용할 수 있으며 부팅 할 때마다 / raid 디렉토리에 자동으로 마운트됩니다.

어레이에 새 드라이브 추가

이제 데이터 손실없이 이전에 생성 된 어레이에 추가하려는 새 드라이브 / dev / sde가 있다고 가정 해 봅시다.

먼저 새 드라이브를 다른 모든 드라이브로 분할해야합니다.

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

그런 다음 RAID 어레이에 추가해야합니다.

$ mdadm --add /dev/md0 /dev/sde1

이제 RAID5 어레이에는 4 개의 드라이브가 있으며 현재 3 개만 사용 중입니다. 4 개의 드라이브를 모두 포함하도록 어레이를 확장해야합니다.

$ mdadm --grow /dev/md0 --raid-devices=4

그런 다음 물리적 LVM2 볼륨을 확장해야합니다.

$ pvresize /dev/md0

이제 물리 볼륨은 기본적으로 RAID 어레이에서 사용 가능한 모든 공간을 포함하도록 크기가 조정됩니다. 물리적 크기로 새로운 크기를 찾아야합니다.

$ vgdisplay vg_raid

새로운 크기가 이제 764라고 가정합니다 ( "Total PE"에서 볼 수 있음). 이제 이것을 덮기 위해 논리 볼륨을 확장하십시오 :

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

그런 다음 XFS 파일 시스템을 펼치십시오. 파일 시스템이 온라인 상태이고 마운트되어있는 동안 수행해야합니다.

$ xfs_grow /raid

기본적으로 사용 가능한 모든 공간을 포함하도록 확장됩니다. 마지막으로 어레이에 새 디스크가 포함되므로 RAID 어레이 형상을 업데이트해야합니다. 먼저 /etc/mdadm/mdadm.conf에서 추가 된 줄을 삭제 한 다음 새 줄을 추가하십시오.

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

3
디스크에 파티션을 두지 마십시오. 커널 내 RAID 자동 감지 (파티션 유형 fd)는 더 이상 사용되지 않습니다.
— James

fdisk로 'fd'파티션을 생성하는 대신 / dev / md0 배열을 / dev / sdb, / dev / sdc 및 / dev / sdd 장치에 직접 만들어야합니까?
— Taskinen

1
모든 디스크의 크기가 같은 것은 아니라고 생각하므로 새 테라 바이트 디스크를 구입하면 정확히 같은 크기가 아닐 수도 있습니다. 문제가 생길까요?
— Taskinen

답변:


5

당신이 옳았다 고 생각합니다. 에서 RAID 5 증가에 대한 경고를 이해하고주의하십시오 man 8 mdadm.

개인적으로 LVM 볼륨을 늘리는 경우 기존 RAID 어레이를 늘리지 않을 것입니다. 다른 RAID 어레이를 생성하고 새 physvol을 생성하여 동일한 볼륨 그룹에 추가합니다. 이것은 훨씬 안전한 작업이며 (새로운 디스크 세트에서 전체 RAID5 어레이를 다시 쓰지 않아도 됨) 어레이의 크기를 줄입니다.


물론 동의합니다. vgextend는 당신의 친구입니다.
— Dan Andreatta 2019

1
일반적으로 이해하지만 위에서 언급 한 3 개의 디스크 배열을 4 개의 디스크 배열로 늘리려는 상황은 어떻습니까? 네 번째 디스크에서만 새 RAID 배열을 만들 수 없습니다.
— Taskinen

1
스토리지 서버의 디스크 어레이를 한 번에 한 디스크 씩 확장하지 않을 것입니다. 3 개의 디스크 어레이에서 4 개의 디스크 어레이로 이동하면 동일한 크기의 디스크를 사용해야하기 때문에 스토리지가 50 % 더 늘어납니다.
— Kamil Kisiel

1
동의했다. 공간이 부족 해지면 더 큰 디스크 드라이브의 가격이 내려갑니다. 더 큰 새로운 드라이브 세트에 두 번째 RAID 어레이를 구축 한 다음, pvmove가 완료되면 이전 데이터를 pvmove하고 이전 세트를 해제하십시오. pvmove의 영향을받는 논리 볼륨의 파일 시스템이 사용중인 동안이 모든 작업을 수행 할 수 있습니다.
— flabdablet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.