하나의 VG(볼륨 그룹)에 다양한 유형의 PV(물리 볼륨)가 포함될 수 있습니까?

하나의 VG(볼륨 그룹)에 다양한 유형의 PV(물리 볼륨)가 포함될 수 있습니까?

배경은 VG에 위치한 LV에 데이터베이스 데이터 디렉터리가 있다는 것입니다. LVM의 스냅샷 기능을 사용하여 데이터베이스 데이터를 백업하려고 하지만 이 VG에는 사용 가능한 PE가 남아 있지 않습니다. 또한 LV를 축소할 수도 없습니다(우리는 XFS를 사용합니다). VG에는 2개의 PV가 있으며 각 PV에는 RAID 10(각각 8개의 하드 드라이브 포함)이 있습니다. 2개의 추가 예비 하드 드라이브가 있습니다(핫 페일오버의 경우 크기는 RAID10 PV 구성과 동일합니다).

예비 드라이브 중 하나를 가져와 PV를 생성하고 데이터베이스 데이터 디렉터리를 호스팅하는 VG에 추가하는 것을 고려하고 있습니다. 이것이 작동합니까? VG에 다양한 유형의 PV(예: RAID 10 PV 2개와 RAID가 없는 하드 디스크 1개)가 포함될 수 있습니까?

답변1

블록 장치인 모든 장치 노드는 PV로 만들어 VG의 구성원으로 추가될 수 있습니다. 예를 들어, 내 컴퓨터 중 하나에 단일 PV의 하드 디스크와 솔리드 스테이트 디스크 구성원이 있고 캐시(https://man7.org/linux/man-pages/man7/lvmcache.7.html).

스냅샷 LV를 생성하는 동안 RAID10 PV를 사용하여 라이브 데이터베이스 데이터를 호스팅하고 예비 디스크를 사용하여 COW(기록 중 복사) 스냅샷을 저장할 수 있습니다. 예비 디스크에 오류가 발생하면 진행 중인 백업이 손실되고 라이브 데이터베이스가 손실되므로 그렇게 하는 것이 좋습니다. LV를 호스팅하는 정확한 PV는 아래 예시와 같이 스냅샷을 생성하는 명령줄에서 지정할 수 있습니다.

# lvcreate -L 10G -n backup_snap_lv -s data_vg/data_lv /dev/sdb
# lvdisplay --maps data_vg/backup_snap_lv

답변2

이것이 LVM의 아이디어이기 때문에 문제가 없을 것입니다. 맨 아래 수준에는 물리적 저장 장치가 있습니다. 거기에 PV가 생성되고, VG에 PV를 추가하면 VG는 아래에 무엇이 있는지 상관하지 않으며, LV에 공간을 추가하거나 LV를 생성하면 LV는 VG가 이 공간을 갖는 위치에 신경 쓰지 않습니다.

물론 미러(LV의 두 복사본)를 생성할 때 서로 다른 PV에 상주하도록 만들 수 있는 특별한 경우가 있습니다(매우 엄격한 모드의 경우 세 번째 PV도 필요함)

답변3

LVM은 (대부분) VG의 PV가 있는 블록 장치의 세부 사항에 관심이 없습니다. 유일한 주요 예외는 폐기 작업을 지원한다고 광고하는 경우 기본 블록 장치에 폐기 작업을 전달하려고 시도할 수 있다는 것입니다.

예를 들어, 내 홈 서버 시스템에는 4개의 4TB SATA 하드 드라이브와 2개의 1TB NVMe SSD가 모두 시스템의 유일한 VG용 PV로 설정되어 있는데, 필요할 때 데이터를 더 쉽게 마이그레이션할 수 있기 때문에 그렇게 했습니다. 디스크 교체( pvmoveVG 병합과 같은 작업을 수행할 필요 없이 간단한 명령으로 전환됨 ).

하지만, 여기에는 큰 경고가 있습니다. LVM은 기본 블록 장치에 신경 쓰지 않기 때문에 여유 공간 조각화를 최소화하는 것 외에는 새 LV를 '지능적으로' 배치하거나 경우에 따라 기존 LV를 확장할 만큼 똑똑하지 않습니다. 따라서 당신은언제나기대하는 동작을 정확히 얻을 수 있도록 이러한 설정에서 새 LV를 생성할 때 사용할 PV를 명시적으로 지정합니다.


여담으로, 예비 드라이브가진실핫 스페어(즉, 어레이의 나머지 부분에서 드라이브 오류가 발생할 경우 시스템이 자동으로 이를 교체용으로 사용함), 더 많은 공간이 절실히 필요하고 실제로 신경쓰지 않는 한 그 중 하나를 다른 용도로 사용하지 않는 것이 좋습니다. 이중 드라이브 오류 가능성(실제로 각 어레이에 드라이브 수가 많을 때 상대적으로 가능성이 높음) 다른 방법으로 공간을 확보할 수 있다면 작업할 공간을 더 확보하기 위한 첫 번째 접근 방식이 될 것입니다.

관련 정보