활성 물리 볼륨으로 RAID1 설정(Debian 9 Stretch)

활성 물리 볼륨으로 RAID1 설정(Debian 9 Stretch)

RAID1을 설정하기 위해 다음 가이드를 따르려고 노력했습니다. https://www.howtoforge.com/set-up-raid1-on-a-running-lvm-system-debian-etch

현재 2개의 6TB 하드 드라이브가 있는데, 그 중 하나에 직접 물리적 볼륨을 생성했고, 다른 하나는 전혀 손대지 않은 새 제품입니다.

sdc                8:32   0   5.5T  0 disk
├─DATA-user_data 254:0    0     4T  0 lvm
└─DATA-app_data  254:1    0     1T  0 lvm
sdd                8:48   0   5.5T  0 disk

물리 sdc볼륨에는 두 개의 논리 볼륨을 포함하는 단일 볼륨 그룹이 있습니다.

root@server:# pvscan
  PV /dev/sdc   VG DATA            lvm2 [5.46 TiB / 469.03 GiB free]
  Total: 1 [5.46 TiB] / in use: 1 [5.46 TiB] / in no VG: 0 [0   ]
root@server:# vgscan
  Reading volume groups from cache.
  Found volume group "DATA" using metadata type lvm2
root@server:# lvscan
  ACTIVE            '/dev/DATA/user_data' [4.00 TiB] inherit
  ACTIVE            '/dev/DATA/app_data' [1.00 TiB] inherit

sdc가이드에서 파티션 테이블을 에서 으로 복사해야 하는 지점에 이르렀지만 , 물론 에 파티션 테이블이 없기 sdd때문에 이는 불가능합니다 .sdc

sdc및 를 사용하여 RAID1을 어떻게 설정할 수 있습니까 sdd?

답변1

sddVG에 추가하여 미러 볼륨을 생성할 수 있습니다.

pvcreate /dev/sdd
vgextend DATA /dev/sdd

그런 다음 각 LV의 복사본 수를 변경합니다.

lvconvert -m1 DATA/user_data
lvconvert -m1 DATA/app_data

(1은 데이터 복사본 2개를 의미하고, 0은 복사본 1개를 의미) 다음과 같은 명령으로 미러링 진행 상황을 확인할 수 있습니다.

lvs -a -o name,copy_percent,devices DATA

답변2

글쎄,게으른옵션은 현재 구성을 그대로 사용하여 /dev/sddLVM에 그대로 추가하고 LVM 자체가 RAID를 처리하도록 하는 것입니다. 이는 mdadm전혀 관련되지 않음을 의미합니다(어쨌든 직접적으로는 아님). Romeo의 답변을 참조하세요. 좋은 답변입니다.

를 사용하고 싶다면 mdadm뒤늦게 불가능하지는 않지만(디스크 끝의 버전 1.0 메타데이터 사용),적절한 방법그렇게 하려면 파티션을 나누고 /dev/sdd, 그 파티션에 RAID를 놓고 mdadm, RAID에 LVM을 놓고, 데이터를 마이그레이션하는 것입니다. 복사본이 양호하다는 것을 확인한 후에는 를 해체하고 /dev/sdc동일한 방식으로 파티션을 나눈 다음 RAID에 추가할 수 있습니다.

대충:

# partition step
parted /dev/sdd
(parted) mklabel gpt
(parted) mkpart md0_0 1MiB -1MiB
(parted) print free
(parted) quit

# mdadm step
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdd1 missing
mdadm --detail --scan > /etc/mdadm.conf

# lvm step (rsync variant, two independent copies)
vgcreate RAIDDATA /dev/md0
lvcreate ...
mkfs ...
mount ...
# LV structure and filesystems as you see fit, then copy everything over
rsync -a /mnt/DATA/. /mnt/RAIDDATA/.

# alternative lvm step (pvmove variant, single copy)
vgextend DATA /dev/md0
pvmove /dev/sdc
vgreduce DATA /dev/sdc

를 사용하여 파일을 마이그레이션하는 것이 rsync더 빠르고 안전합니다(무슨 일이 있어도 원본은 그대로 남아 있습니다). 동시에 사용자 오류가 발생하기 쉽습니다( rsync무언가를 놓쳤는지 알기 어렵습니다).

데이터를 마이그레이션하는 것은 pvmove더 느리고 위험하지만(무엇이든 잘못되고 원본도 일종의 사라짐) 아무것도 놓치지 않습니다(삭제된 파일 등 포함).

이 시점에서 fstab / grub에서 UUID(mkfs, rsync를 사용한 경우)를 업데이트하고 initramfs를 업데이트하려고 합니다. 재부팅하고 모든 것이 정상이며 /dev/sdc더 이상 사용되지 않는지 확인하십시오. 그런 다음 RAID에 추가할 수 있습니다.

# partition step
parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart md0_1 1MiB -1MiB
(parted) print free
(parted) quit

# raid resync step
mdadm /dev/md0 --add /dev/sdc1
watch -n 60 cat /proc/mdstat

그리고 그게 전부입니다 ...

대체로 대부분의 사람들이 기대하는 설정(하드 드라이브, 파티션, raid, lvm, 파일 시스템)을 제공합니다. 동시에 암호화를 추가할 수도 있습니다. ;-)

관련 정보