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.