67.7. RAID 논리 볼륨 구성
LVM(Logical Volume Manager)을 사용하여 RAID(Redundant Array of Independent Disks) 볼륨을 생성하고 관리할 수 있습니다. LVM은 RAID 수준 0, 1, 4, 5, 6, 10을 지원합니다. LVM RAID 볼륨에는 다음과 같은 특징이 있습니다.
- LVM은 여러 장치(MD) 커널 드라이버를 활용하는 RAID 논리 볼륨을 생성하고 관리합니다.
- 배열에서 RAID1 이미지를 일시적으로 분할하고 나중에 배열에 다시 병합할 수 있습니다.
- LVM RAID 볼륨은 스냅샷을 지원합니다.
- RAID 논리 볼륨은 클러스터를 인식하지 못합니다. 하나의 시스템에서만 RAID 논리 볼륨을 생성하고 활성화할 수 있지만 둘 이상의 시스템에서 동시에 활성화할 수 없습니다.
-
RAID 논리 볼륨(LV)을 생성할 때 LVM은 배열의 모든 데이터 또는 패리티 하위 볼륨에 대해 크기가 한 범위인 메타데이터 하위 볼륨을 생성합니다. 예를 들어 2방향 RAID1 배열을 생성하면 두 개의 메타데이터 하위 볼륨(
lv_rmeta_0
및lv_rmeta_1
)과 두 개의 데이터 하위 볼륨(lv_rimage_0
및lv_rimage_1
)이 생성됩니다. - RAID LV에 무결성을 추가하면 소프트 손상이 줄어들거나 방지됩니다.
67.7.1. RAID 수준 및 선형 지원 링크 복사링크가 클립보드에 복사되었습니다!
다음은 수준 0, 1, 4, 5, 6, 10 및 선형을 포함하여 RAID에서 지원하는 구성입니다.
- 수준 0
RAID 수준 0은 종종 스트라이핑된 성능 지향 데이터 매핑 기술입니다. 즉, 배열에 기록되는 데이터가 스트라이프로 분할되고 배열의 멤버 디스크에 기록되므로 낮은 I/O 성능이 있지만 중복성은 제공되지 않습니다.
RAID 수준 0 구현은 멤버 장치에서 데이터를 배열에서 가장 작은 장치의 크기로만 스트라이프합니다. 즉, 크기가 약간 다른 여러 장치가 있는 경우 각 장치는 가장 작은 드라이브와 동일한 크기인 것처럼 처리됩니다. 따라서 수준 0 배열의 일반적인 스토리지 용량은 모든 디스크의 총 용량입니다. 멤버 디스크의 크기가 다른 경우 RAID0은 사용 가능한 영역을 사용하여 해당 디스크의 모든 공간을 사용합니다.
- 수준 1
RAID 수준 1 또는 미러링은 배열의 각 멤버 디스크에 동일한 데이터를 작성하여 중복을 제공하여 각 디스크에 미러링된 복사본을 남겨 둡니다. 미러링은 단순성과 높은 수준의 데이터 가용성으로 인해 널리 사용됩니다. 수준 1은 두 개 이상의 디스크로 작동하며 우수한 데이터 안정성을 제공하고 읽기 집약적인 애플리케이션의 성능을 개선하지만 비교적 비용이 많이 듭니다.
RAID 레벨 1은 데이터 신뢰성을 제공하지만 레벨 5와 같은 패리티 기반 RAID 수준보다 훨씬 적은 공간 효율적인 방식으로 배열의 모든 디스크에 동일한 정보를 쓰기 때문에 비용이 많이 듭니다. 그러나 이 공간 비효율은 성능 이점을 제공합니다. 이는 패리티를 생성하기 위해 훨씬 더 많은 CPU 성능을 소비하는 패리티 기반 RAID 수준입니다. RAID 수준 1은 단순히 CPU 오버헤드가 적은 여러 RAID 멤버에 동일한 데이터를 두 번 이상 씁니다. 따라서 RAID 레벨 1은 소프트웨어 RAID가 사용되는 시스템에서 패리티 기반 RAID 수준을 초과하여 시스템의 CPU 리소스가 RAID 활동 이외의 작업에 일관되게 과세됩니다.
레벨 1 어레이의 스토리지 용량은 하드웨어 RAID에서 가장 작은 미러링된 하드 디스크 용량 또는 소프트웨어 RAID에서 가장 작은 미러링된 파티션과 동일합니다. 수준 1 중복은 모든 RAID 유형 중에서 가장 높은 수준이며, 배열은 단일 디스크에서만 작동할 수 있습니다.
- 수준 4
레벨 4는 데이터를 보호하기 위해 단일 디스크 드라이브에 중점을 둔 패리티를 사용합니다. 패리티 정보는 배열의 나머지 멤버 디스크의 내용을 기반으로 계산됩니다. 그런 다음 이 정보를 사용하여 배열의 디스크 1개가 실패할 때 데이터를 재구성할 수 있습니다. 복원된 데이터는 교체되기 전에 실패한 디스크에 I/O 요청을 충족하고 실패한 디스크를 교체한 후 다시 생성하는 데 사용할 수 있습니다.
전용 패리티 디스크는 RAID 배열에 대한 모든 쓰기 트랜잭션에 대한 고유한 병목 현상을 나타내며, 레벨 4는 나중 쓰기 캐싱과 같은 관련 기술 없이는 거의 사용되지 않습니다. 또는 시스템 관리자가 의도적으로 이러한 병목 현상을 가진 소프트웨어 RAID 장치를 설계하는 경우 배열이 데이터로 채워지면 쓰기 트랜잭션이 거의 없는 배열과 같이 시스템 관리자가 의도적으로 사용됩니다. RAID 수준 4는 Anaconda에서 옵션으로 사용할 수 없도록 거의 사용되지 않습니다. 그러나 필요한 경우 사용자가 수동으로 생성할 수 있습니다.
하드웨어 RAID 수준 4의 스토리지 용량은 가장 작은 멤버 파티션의 용량에 파티션 수를 - 1을 곱한 것과 같습니다. RAID 수준 4 배열의 성능은 항상 비대칭이며, 이는 outperform 쓰기를 의미합니다. 이는 쓰기 작업이 패리티를 생성할 때 추가 CPU 리소스 및 기본 메모리 대역폭을 소비하고 실제 데이터를 디스크에 쓸 때 추가 버스 대역폭을 소비하기 때문입니다. 데이터 작성뿐만 아니라 패리티도 사용하기 때문입니다. 읽기 작업은 배열이 성능 저하된 상태에 있지 않는 한 패리티가 아닌 데이터 읽기만 있으면 됩니다. 결과적으로 읽기 작업은 일반 작동 조건에서 동일한 양의 데이터 전송에 대해 드라이브의 트래픽과 컴퓨터 전체에서 더 적은 트래픽을 생성합니다.
- 수준 5
RAID의 가장 일반적인 유형입니다. RAID 레벨 5는 모든 멤버 디스크 드라이브에 패리티를 분배함으로써 레벨 4에 내재된 쓰기 병목 현상을 제거합니다. 유일한 성능 장애는 패리티 계산 프로세스 자체입니다. 최신 CPU는 패리티를 매우 빠르게 계산할 수 있습니다. 그러나 RAID 5 배열에 많은 수의 디스크가 있어 모든 장치에서 결합된 집계 데이터 전송 속도가 충분히 높으면 패리티 계산이 병목 현상이 발생할 수 있습니다.
레벨 5에는 비대칭 성능이 있으며 상당한 성능 쓰기를 읽습니다. RAID 수준 5의 스토리지 용량은 수준 4와 동일한 방식으로 계산됩니다.
- 수준 6
이는 데이터 중복성 및 보존이 아닌 데이터가 성능상 중요한 문제이지만 수준 1의 공간 비효율성을 허용하지 않는 경우 RAID의 일반적인 수준입니다. 레벨 6은 복잡한 패리티 체계를 사용하여 배열의 두 드라이브의 손실에서 복구할 수 있습니다. 이러한 복잡한 패리티 체계는 소프트웨어 RAID 장치에 대한 CPU 부담을 크게 높이며 쓰기 트랜잭션 중에 부담을 증가시킵니다. 따라서 레벨 6은 레벨 4와 5보다 성능이 훨씬 더 비대칭적입니다.
RAID 수준 6 배열의 총 용량은 RAID 수준 5 및 4와 유사하게 계산됩니다. 단, 추가 패리티 스토리지 공간을 위해 장치 수에서 두 개의 장치를 뺀 것입니다.
- 수준 10
이 RAID 수준은 수준 0의 성능 이점과 수준 1의 중복성을 결합합니다. 또한 두 개 이상의 장치를 사용하는 레벨 1 배열에서 공간 중 일부를 줄입니다. 레벨 10의 경우, 예를 들어, 각 데이터의 각 조각의 두 복사본만 저장하도록 구성된 3-drive 배열을 생성할 수 있으며, 이를 통해 전체 배열 크기는 3-장치, 레벨 1 어레이와 유사하게 가장 작은 장치뿐만 아니라 최소 장치의 크기를 1.5배로 지정할 수 있습니다. 이렇게 하면 RAID 수준 6과 유사한 패리티를 계산하기 위해 CPU 프로세스 사용을 피할 수 있지만 공간 효율적이 줄어듭니다.
설치 중에 RAID 수준 10 생성은 지원되지 않습니다. 설치 후 수동으로 생성할 수 있습니다.
- 선형 RAID
선형 RAID는 더 큰 가상 드라이브를 만드는 드라이브 그룹입니다.
선형 RAID에서는 청크가 하나의 멤버 드라이브에서 순차적으로 할당되고 첫 번째 드라이브가 완전히 채워지는 경우에만 다음 드라이브로 이동합니다. 이 그룹화는 모든 I/O 작업이 멤버 드라이브 간에 분할되지 않으므로 성능상의 이점을 제공하지 않습니다. 또한 선형 RAID는 중복성을 제공하지 않으며 신뢰성을 낮춥니다. 하나의 멤버 드라이브가 실패하면 전체 배열을 사용할 수 없으며 데이터가 손실될 수 있습니다. 용량은 모든 멤버 디스크의 합계입니다.
67.7.2. LVM RAID 세그먼트 유형 링크 복사링크가 클립보드에 복사되었습니다!
RAID 논리 볼륨을 생성하려면 lvcreate
명령의 --type
인수를 사용하여 RAID 유형을 지정할 수 있습니다. 대부분의 사용자에게 raid1
,raid4
,raid5
,raid6
및 raid10
인 5 가지 기본 유형 중 하나를 지정하면 충분합니다.
다음 표에서는 가능한 RAID 세그먼트 유형을 설명합니다.
세그먼트 유형 | 설명 |
---|---|
|
RAID1 미러링. 스트라이핑을 지정하지 않고 |
| RAID4 전용 패리티 디스크. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 스트라이핑. RAID0은 스트라이프 크기 단위로 여러 데이터 하위 볼륨에 논리 볼륨 데이터를 분배합니다. 이는 성능을 높이는 데 사용됩니다. 데이터 하위 볼륨이 실패하는 경우 논리 볼륨 데이터가 손실됩니다. |
67.7.3. RAID0 생성을 위한 매개변수 링크 복사링크가 클립보드에 복사되었습니다!
lvcreate --type raid0[meta] --stripes --stripesize Stripesize StripeSize VolumeGroup [PhysicalVolumePath]
명령을 사용하여 RAID0이 제거된 논리 볼륨을 생성할 수 있습니다.
다음 표에는 RAID0 스트라이핑된 논리 볼륨을 만드는 동안 사용할 수 있는 다양한 매개변수가 설명되어 있습니다.
매개변수 | 설명 |
---|---|
|
|
| 논리 볼륨을 분산할 장치 수를 지정합니다. |
| 각 스트라이프의 크기를 킬로바이트 단위로 지정합니다. 이는 다음 장치로 이동하기 전에 한 장치에 기록된 데이터의 양입니다. |
| 사용할 볼륨 그룹을 지정합니다. |
| 사용할 장치를 지정합니다. 지정하지 않으면 LVM에서 Stripes 옵션에 지정된 장치 수를 선택합니다. 각 스트라이프에 대해 하나씩 선택합니다. |
67.7.4. RAID 논리 볼륨 생성 링크 복사링크가 클립보드에 복사되었습니다!
-m
인수에 지정하는 값에 따라 여러 수의 복사본을 사용하여 RAID1 배열을 생성할 수 있습니다. 마찬가지로 -i
인수를 사용하여 RAID 0, 4, 5, 6, 10 논리 볼륨의 스트라이프 수를 지정할 수 있습니다. -I
인수를 사용하여 스트라이프 크기를 지정할 수도 있습니다. 다음 절차에서는 다양한 유형의 RAID 논리 볼륨을 생성하는 다양한 방법을 설명합니다.
프로세스
2방향 RAID를 생성합니다. 다음 명령은 볼륨 그룹 my_vg 에서 크기가 1G 인 my_lv 라는 2방향 RAID1 배열을 생성합니다.
lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
# lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg Logical volume "my_lv" created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스트라이프를 사용하여 RAID5 배열을 생성합니다. 다음 명령은 세 개의 스트라이프가 있는 RAID5 배열과 크기 my_lv에서 my_lv 라는 하나의 암시적 패리티 드라이브를 생성합니다. 즉 크기가 1G 입니다. LVM 스트라이핑 볼륨과 유사한 스트라이프 수를 지정할 수 있습니다. 올바른 패리티 드라이브 수가 자동으로 추가됩니다.
lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
# lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스트라이프를 사용하여 RAID6 배열을 생성합니다. 다음 명령은 3개의 스트라이프 3개의 스트라이프와 두 개의 암시적 패리티 드라이브를 사용하여 RAID6 배열을 생성합니다. my_lv 는 볼륨 그룹 my_vg 에서 1G 1 기가바이트 크기입니다.
lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
# lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
2방향 RAID1 배열인 LVM 장치 my_vg/my_lv 를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.5. 스토리지 RHEL 시스템 역할을 사용하여 RAID로 LVM 풀 구성 링크 복사링크가 클립보드에 복사되었습니다!
스토리지
시스템 역할을 사용하면 Red Hat Ansible Automation Platform을 사용하여 RHEL에서 RAID로 LVM 풀을 구성할 수 있습니다. 사용 가능한 매개 변수로 Ansible 플레이북을 설정하여 RAID로 LVM 풀을 구성할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
프로세스
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.storage/README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
풀이 RAID에 있는지 확인합니다.
ansible managed-node-01.example.com -m command -a 'lsblk'
# ansible managed-node-01.example.com -m command -a 'lsblk'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.6. RAID0 스트라이핑 논리 볼륨 생성 링크 복사링크가 클립보드에 복사되었습니다!
RAID0 논리 볼륨은 스트라이프 크기 단위로 여러 데이터 하위 볼륨에 논리 볼륨 데이터를 분배합니다. 다음 절차에서는 디스크 전체에서 데이터를 스트라이핑하는 mylv 라는 LVM RAID0 논리 볼륨을 생성합니다.
사전 요구 사항
- 세 개 이상의 물리 볼륨을 생성했습니다. 물리 볼륨 생성에 대한 자세한 내용은 LVM 물리 볼륨 생성 을 참조하십시오.
- 볼륨 그룹을 생성했습니다. 자세한 내용은 LVM 볼륨 그룹 생성 을 참조하십시오.
프로세스
기존 볼륨 그룹에서 RAID0 논리 볼륨을 생성합니다. 다음 명령은 볼륨 그룹 myvg 에서 3개의 스트라이프와 4kB 의 스트라이프 크기를 사용하여 크기가 2G 인 mylv 볼륨 mylv를 생성합니다.
lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg
# lvcreate --type raid0 -L 2G --stripes 3 --stripesize 4 -n mylv my_vg Rounding size 2.00 GiB (512 extents) up to stripe boundary size 2.00 GiB(513 extents). Logical volume "mylv" created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID0 논리 볼륨에 파일 시스템을 생성합니다. 다음 명령은 논리 볼륨에 ext4 파일 시스템을 생성합니다.
mkfs.ext4 /dev/my_vg/mylv
# mkfs.ext4 /dev/my_vg/mylv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 논리 볼륨을 마운트하고 파일 시스템 디스크 공간 사용량을 보고합니다.
mount /dev/my_vg/mylv /mnt df
# mount /dev/my_vg/mylv /mnt # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/my_vg-mylv 2002684 6168 1875072 1% /mnt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
생성된 RAID0 제거된 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.7. 스토리지 RHEL 시스템 역할을 사용하여 RAID LVM 볼륨의 스트라이프 크기 구성 링크 복사링크가 클립보드에 복사되었습니다!
스토리지
시스템 역할을 사용하면 Red Hat Ansible Automation Platform을 사용하여 RHEL에서 RAID LVM 볼륨의 스트라이프 크기를 구성할 수 있습니다. 사용 가능한 매개 변수로 Ansible 플레이북을 설정하여 RAID로 LVM 풀을 구성할 수 있습니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
프로세스
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의
/usr/share/ansible/roles/rhel-system-roles.storage/README.md
파일을 참조하십시오.플레이북 구문을 확인합니다.
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
스트라이프 크기가 필요한 크기로 설정되어 있는지 확인합니다.
ansible managed-node-01.example.com -m command -a 'lvs -o+stripesize /dev/my_pool/my_volume'
# ansible managed-node-01.example.com -m command -a 'lvs -o+stripesize /dev/my_pool/my_volume'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.8. 소프트 데이터 손상 링크 복사링크가 클립보드에 복사되었습니다!
데이터 스토리지의 소프트 손상은 스토리지 장치에서 검색된 데이터가 해당 장치에 기록된 데이터와 다르다는 것을 의미합니다. 손상된 데이터는 스토리지 장치에 무기한 존재할 수 있습니다. 이 데이터를 검색하고 사용하려고 할 때까지 이러한 손상된 데이터를 검색하지 못할 수 있습니다.
구성 유형에 따라 RAID(Redundant Array of Independent Disk) 논리 볼륨(LV)은 장치가 실패할 때 데이터 손실을 방지합니다. RAID 배열로 구성된 장치가 실패하면 해당 RAID LV의 일부인 다른 장치에서 데이터를 복구할 수 있습니다. 그러나 RAID 구성은 데이터 자체의 무결성을 보장하지 않습니다. 소프트 손상, 자동 손상, 소프트 오류 및 음소거 오류는 시스템 설계 및 소프트웨어가 예상대로 작동하더라도 손상 된 데이터를 설명하는 용어입니다.
DM 무결성이 있는 새 RAID LV를 생성하거나 기존 RAID LV에 무결성을 추가하는 경우 다음 사항을 고려하십시오.
- 무결성 메타데이터에는 추가 스토리지 공간이 필요합니다. 각 RAID 이미지에 대해 데이터에 추가되는 체크섬으로 인해 500MB의 모든 데이터에 4MB의 추가 스토리지 공간이 필요합니다.
- 일부 RAID 구성은 다른 구성보다 많은 영향을 받지만 DM 무결성을 추가하면 데이터에 액세스할 때 대기 시간 때문에 성능에 영향을 미칩니다. RAID1 구성은 일반적으로 RAID5 또는 변형보다 더 나은 성능을 제공합니다.
- RAID 무결성 블록 크기는 성능에도 영향을 미칩니다. 더 큰 RAID 무결성 블록 크기를 구성하면 성능이 향상됩니다. 그러나 RAID 무결성 블록 크기가 작으면 이전 버전과의 호환성이 향상됩니다.
-
비트맵
또는저널
의 두 가지 무결성 모드를 사용할 수 있습니다.비트맵
무결성 모드는 일반적으로저널
모드보다 더 나은 성능을 제공합니다.
성능 문제가 발생하는 경우 RAID1을 무결성으로 사용하거나 특정 RAID 구성의 성능을 테스트하여 요구 사항을 충족하는지 확인합니다.
67.7.9. DM 무결성을 사용하여 RAID 논리 볼륨 생성 링크 복사링크가 클립보드에 복사되었습니다!
DM(Device mapper) 무결성을 사용하여 RAID LV를 생성하거나 기존 RAID 논리 볼륨(LV)에 무결성을 추가하면 소프트 손상으로 인해 데이터가 손실될 위험이 완화됩니다. LV를 사용하기 전에 무결성 동기화 및 RAID 메타데이터가 완료될 때까지 기다립니다. 그렇지 않으면 백그라운드 초기화가 LV의 성능에 영향을 미칠 수 있습니다.
DM(Device mapper) 무결성은 소프트 손상으로 인한 데이터 손실을 완화하거나 방지하기 위해 RAID 수준 1, 4, 5, 6, 10과 함께 사용됩니다. RAID 계층을 사용하면 손상되지 않은 데이터 사본이 소프트 손상 오류를 수정할 수 있습니다.
절차
DM 무결성을 사용하여 RAID LV를 생성합니다. 다음 예제에서는 256M 및 RAID 수준 1 의 사용 가능한 크기로 my_vg 볼륨 그룹에 test-lv 라는 무결성이 있는 새 RAID LV를 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고기존 RAID LV에 DM 무결성을 추가하려면 다음 명령을 사용합니다.
lvconvert --raidintegrity y my_vg/test-lv
# lvconvert --raidintegrity y my_vg/test-lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID LV에 무결성을 추가하면 해당 RAID LV에서 수행할 수 있는 작업 수가 제한됩니다.
선택 사항: 특정 작업을 수행하기 전에 무결성을 제거합니다.
lvconvert --raidintegrity n my_vg/test-lv
# lvconvert --raidintegrity n my_vg/test-lv Logical volume my_vg/test-lv has removed integrity.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
추가된 DM 무결성에 대한 정보를 확인합니다.
my_vg 볼륨 그룹에 생성된 test-lv RAID LV에 대한 정보를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음은 이 출력과 다양한 옵션을 설명합니다.
- G 속성
-
Attr 열 아래의 특성 목록은 RAID 이미지가 무결성을 사용하고 있음을 나타냅니다. 무결성은 체크섬을
_imeta
RAID LV에 저장합니다. CPY%Sync
열- 이는 최상위 RAID LV와 각 RAID 이미지의 동기화 진행 상황을 나타냅니다.
- RAID 이미지
-
raid_image_N
로 LV 열에 표시됩니다. LV
열- 동기화 진행 상황을 통해 최상위 RAID LV 및 각 RAID 이미지에 대해 100%로 표시됩니다.
- G 속성
각 RAID LV의 유형을 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 각 RAID 이미지에서 감지된 불일치 수를 계산하는 증분 카운터가 있습니다. my_vg/test-lv 아래의
rimage_0
의 무결성으로 감지되는 데이터 불일치를 확인합니다.lvs -o+integritymismatches my_vg/test-lv_rimage_0
# lvs -o+integritymismatches my_vg/test-lv_rimage_0 LV VG Attr LSize Origin Cpy%Sync IntegMismatches [test-lv_rimage_0] my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 100.00 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 무결성은 데이터 불일치를 감지하지 못하므로
IntegMismatches
카운터는 0(0)을 표시합니다.다음 예와 같이
/var/log/messages
로그 파일의 데이터 무결성 정보를 확인합니다.예 67.1. 커널 메시지 로그에서 dm-integrity 불일치의 예
device-mapper: integrity: dm-12: 0x24e7 섹터에서 체크섬이 실패했습니다.
예 67.2. 커널 메시지 로그에서 dm-integrity 데이터 수정의 예
MD/raid1:mdX: Read error corrected (9448 on dm-16)
67.7.10. RAID 논리 볼륨을 다른 RAID 수준으로 변환 링크 복사링크가 클립보드에 복사되었습니다!
LVM은 RAID 논리 볼륨을 하나의 RAID 수준에서 다른 RAID 수준으로 변환하는 것을 의미합니다(예: RAID 5에서 RAID 6로 변환). RAID 수준을 변경하여 장치 오류에 대한 복원력을 늘리거나 줄일 수 있습니다.
절차
RAID 논리 볼륨을 생성합니다.
lvcreate --type raid5 -i 3 -L 500M -n my_lv my_vg
# lvcreate --type raid5 -i 3 -L 500M -n my_lv my_vg Using default stripesize 64.00 KiB. Rounding size 500.00 MiB (125 extents) up to stripe boundary size 504.00 MiB (126 extents). Logical volume "my_lv" created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리 볼륨을 확인합니다.
lvs -a -o +devices,segtype
# lvs -a -o +devices,segtype LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type my_lv my_vg rwi-a-r--- 504.00m 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0),my_lv_rimage_3(0) raid5 [my_lv_rimage_0] my_vg iwi-aor--- 168.00m /dev/sda(1) linear
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리 볼륨을 다른 RAID 수준으로 변환합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 이 명령이 변환을 반복하도록 요청하는 메시지를 표시하는 경우 다음을 실행합니다.
lvconvert --type raid6 my_vg/my_lv
# lvconvert --type raid6 my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
변환된 RAID 수준으로 RAID 논리 볼륨을 확인합니다.
lvs -a -o +devices,segtype
# lvs -a -o +devices,segtype LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type my_lv my_vg rwi-a-r--- 504.00m 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0),my_lv_rimage_3(0),my_lv_rimage_4(0) raid6 [my_lv_rimage_0] my_vg iwi-aor--- 172.00m /dev/sda(1) linear
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.11. 선형 장치를 RAID 논리 볼륨으로 변환 링크 복사링크가 클립보드에 복사되었습니다!
기존 선형 논리 볼륨을 RAID 논리 볼륨으로 변환할 수 있습니다. 이 작업을 수행하려면 lvconvert
명령의 --type
인수를 사용합니다.
RAID 논리 볼륨은 메타데이터 및 데이터 하위 볼륨 쌍으로 구성됩니다. 선형 장치를 RAID1 배열로 변환하면 새 메타데이터 하위 볼륨을 생성하고 선형 볼륨이 있는 동일한 물리 볼륨 중 하나에서 원래 논리 볼륨에 연결합니다. 추가 이미지는 metadata/data 하위 볼륨 쌍에 추가됩니다. 원래 논리 볼륨과 쌍을 동일한 물리 볼륨에 배치할 수 없는 메타데이터 이미지를 동일한 물리 볼륨에 배치할 수 없는 경우 lvconvert
가 실패합니다.
절차
변환해야 하는 논리 볼륨 장치를 확인합니다.
lvs -a -o name,copy_percent,devices my_vg
# lvs -a -o name,copy_percent,devices my_vg LV Copy% Devices my_lv /dev/sde1(0)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선형 논리 볼륨을 RAID 장치로 변환합니다. 다음 명령은 볼륨 그룹 __my_vg의 선형 논리 볼륨 my_lv 를 2방향 RAID1 배열로 변환합니다.
lvconvert --type raid1 -m 1 my_vg/my_lv
# lvconvert --type raid1 -m 1 my_vg/my_lv Are you sure you want to convert linear LV my_vg/my_lv to raid1 with 2 images enhancing resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
논리 볼륨이 RAID 장치로 변환되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.12. LVM RAID1 논리 볼륨을 LVM 선형 논리 볼륨으로 변환 링크 복사링크가 클립보드에 복사되었습니다!
기존 RAID1 LVM 논리 볼륨을 LVM 선형 논리 볼륨으로 변환할 수 있습니다. 이 작업을 수행하려면 lvconvert
명령을 사용하고 -m0
인수를 지정합니다. 이렇게 하면 RAID 배열을 구성하는 모든 RAID 데이터 하위 볼륨과 RAID 배열을 구성하는 모든 RAID 메타데이터 하위 볼륨이 제거되어 최상위 RAID1 이미지가 선형 논리 볼륨으로 유지됩니다.
절차
기존 LVM RAID1 논리 볼륨을 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 RAID1 LVM 논리 볼륨을 LVM 선형 논리 볼륨으로 변환합니다. 다음 명령은 LVM RAID1 논리 볼륨 my_vg/my_lv 를 LVM 선형 장치로 변환합니다.
lvconvert -m0 my_vg/my_lv
# lvconvert -m0 my_vg/my_lv Are you sure you want to convert raid1 LV my_vg/my_lv to type linear losing all resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM RAID1 논리 볼륨을 LVM 선형 볼륨으로 변환할 때 제거할 물리 볼륨도 지정할 수 있습니다. 다음 예에서
lvconvert
명령은 /dev/sde1 을 제거하고 선형 장치를 구성하는 물리 볼륨으로 /dev/sdf1 을 남겨 둡니다.lvconvert -m0 my_vg/my_lv /dev/sde1
# lvconvert -m0 my_vg/my_lv /dev/sde1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
RAID1 논리 볼륨이 LVM 선형 장치로 변환되었는지 확인합니다.
lvs -a -o name,copy_percent,devices my_vg
# lvs -a -o name,copy_percent,devices my_vg LV Copy% Devices my_lv /dev/sdf1(1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.13. 미러링된 LVM 장치를 RAID1 논리 볼륨으로 변환 링크 복사링크가 클립보드에 복사되었습니다!
세그먼트 유형 미러를 사용하여 기존 미러링된 LVM 장치를 RAID1 LVM 장치로 변환할 수 있습니다. 이 작업을 수행하려면 --type
raid1 인수와 함께 lvconvert
명령을 사용합니다. mimage
라는 미러 하위 볼륨의 이름을 rimage
라는 RAID 하위 볼륨으로 변경합니다.
또한 미러 로그를 제거하고 해당 데이터 하위 볼륨과 동일한 물리 볼륨의 data 하위 볼륨에 대해 rmeta
라는 메타데이터 하위 볼륨을 생성합니다.
절차
미러링된 논리 볼륨 my_vg/my_lv 의 레이아웃을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 미러링된 논리 볼륨 my_vg/my_lv 를 RAID1 논리 볼륨으로 변환합니다.
lvconvert --type raid1 my_vg/my_lv
# lvconvert --type raid1 my_vg/my_lv Are you sure you want to convert mirror LV my_vg/my_lv to raid1 type? [y/n]: y Logical volume my_vg/my_lv successfully converted.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
미러링된 논리 볼륨이 RAID1 논리 볼륨으로 변환되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.14. 기존 RAID1 장치의 이미지 수 변경 링크 복사링크가 클립보드에 복사되었습니다!
LVM 미러링 구현의 이미지 수를 변경할 수 있는 방식과 유사하게 기존 RAID1 배열의 이미지 수를 변경할 수 있습니다.
lvconvert
명령을 사용하여 RAID1 논리 볼륨에 이미지를 추가하면 다음 작업을 수행할 수 있습니다.
- 결과 장치의 총 이미지 수를 지정합니다.
- 장치에 추가할 이미지 수 및
- 새 메타데이터/데이터 이미지 쌍이 상주하는 물리 볼륨을 선택적으로 지정할 수 있습니다.
절차
2방향 RAID1 배열인 LVM 장치 my_vg/my_lv 를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rmeta
라는 메타데이터 하위 볼륨은 항상 data 하위 볼륨rimage
와 동일한 물리적 장치에 존재합니다. 메타데이터/데이터 하위 볼륨 쌍은 어디서든--alloc
을 지정하지 않는 한 RAID 배열의 다른 metadata/data 하위 볼륨 쌍과 동일한 물리 볼륨에 생성되지 않습니다.2방향 RAID1 논리 볼륨 my_vg/my_lv 를 3방향 RAID1 논리 볼륨으로 변환합니다.
lvconvert -m 2 my_vg/my_lv
# lvconvert -m 2 my_vg/my_lv Are you sure you want to convert raid1 LV my_vg/my_lv to 3 images enhancing resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음은 기존 RAID1 장치의 이미지 수를 변경하는 몇 가지 예입니다.
RAID에 이미지를 추가하는 동안 사용할 물리 볼륨을 지정할 수도 있습니다. 다음 명령은 배열에 사용할 물리 볼륨 /dev/sdd1 을 지정하여 2-way RAID1 논리 볼륨 my_vg/my_lv 를 3-way RAID1 논리 볼륨으로 변환합니다.
lvconvert -m 2 my_vg/my_lv /dev/sdd1
# lvconvert -m 2 my_vg/my_lv /dev/sdd1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 3방향 RAID1 논리 볼륨을 2방향 RAID1 논리 볼륨으로 변환합니다.
lvconvert -m1 my_vg/my_lv
# lvconvert -m1 my_vg/my_lv Are you sure you want to convert raid1 LV my_vg/my_lv to 2 images reducing resilience? [y/n]: y Logical volume my_vg/my_lv successfully converted.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 제거할 이미지가 포함된 물리 볼륨 /dev/sde1 을 지정하여 3-way RAID1 논리 볼륨을 2방향 RAID1 논리 볼륨으로 변환합니다.
lvconvert -m1 my_vg/my_lv /dev/sde1
# lvconvert -m1 my_vg/my_lv /dev/sde1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또한 이미지 및 관련 메타데이터 하위 볼륨을 제거하면 번호가 높은 이미지가 아래로 전환되어 슬롯을 채웁니다.
lv_rimage_0
,lv_rimage_1
및lv_rimage_2
로 구성된 3-way RAID1 배열에서lv_rimage_1
을 제거하면lv_rimage_0
및lv_rimage_1
로 구성된 RAID1 배열이 생성됩니다. 하위 볼륨lv_rimage_2
는 이름이 변경되고 빈 슬롯을 대체하여lv_rimage_1
이 됩니다.
검증
기존 RAID1 장치의 이미지 수를 변경한 후 RAID1 장치를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.15. RAID 이미지를 별도의 논리 볼륨으로 분할 링크 복사링크가 클립보드에 복사되었습니다!
RAID 논리 볼륨의 이미지를 분할하여 새 논리 볼륨을 형성할 수 있습니다. 기존 RAID1 논리 볼륨에서 RAID 이미지를 제거하거나 장치 중앙에서 RAID 데이터 하위 볼륨 및 관련 메타데이터 하위 볼륨을 제거하면 더 많은 수의 이미지가 슬롯을 채우도록 아래로 이동합니다. 따라서 RAID 배열을 구성하는 논리 볼륨의 인덱스 번호는 정수의 눈에 띄지 않는 시퀀스가 됩니다.
RAID1 배열이 아직 동기화되지 않은 경우 RAID 이미지를 분할할 수 없습니다.
절차
2방향 RAID1 배열인 LVM 장치 my_vg/my_lv 를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 이미지를 별도의 논리 볼륨으로 분할합니다.
다음 예제에서는 2방향 RAID1 논리 볼륨인 my_lv 를 두 개의 선형 논리 볼륨인 my_lv 및 new 로 분할합니다.
lvconvert --splitmirror 1 -n new my_vg/my_lv
# lvconvert --splitmirror 1 -n new my_vg/my_lv Are you sure you want to split raid1 LV my_vg/my_lv losing all resilience? [y/n]: y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제에서는 3방향 RAID1 논리 볼륨인 my_lv 를 2방향 RAID1 논리 볼륨, my_lv 및 선형 논리 볼륨 new 로 분할합니다.
lvconvert --splitmirror 1 -n new my_vg/my_lv
# lvconvert --splitmirror 1 -n new my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
RAID 논리 볼륨의 이미지를 분할한 후 논리 볼륨을 확인합니다.
lvs -a -o name,copy_percent,devices my_vg
# lvs -a -o name,copy_percent,devices my_vg LV Copy% Devices my_lv /dev/sde1(1) new /dev/sdf1(1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.16. RAID 이미지 분할 및 병합 링크 복사링크가 클립보드에 복사되었습니다!
lvconvert
명령의 --splitmirrors
인수와 함께 --trackchanges
인수를 사용하여 변경 사항을 추적하는 동안 읽기 전용 사용을 위해 RAID1 배열의 이미지를 일시적으로 분할할 수 있습니다. 이 기능을 사용하면 나중에 이미지를 배열에 병합하고 이미지가 분할된 이후 변경된 배열의 일부만 다시 동기화할 수 있습니다.
--trackchanges
인수를 사용하여 RAID 이미지를 분할하면 분할할 이미지를 지정할 수 있지만 분할되는 볼륨의 이름을 변경할 수는 없습니다. 또한 결과 볼륨에는 다음과 같은 제약 조건이 있습니다.
- 생성한 새 볼륨은 읽기 전용입니다.
- 새 볼륨의 크기를 조정할 수 없습니다.
- 나머지 배열의 이름을 변경할 수 없습니다.
- 나머지 배열의 크기를 조정할 수 없습니다.
- 새 볼륨과 나머지 배열을 독립적으로 활성화할 수 있습니다.
분할된 이미지를 병합할 수 있습니다. 이미지를 병합할 때 이미지 분할 이후 변경된 배열의 일부만 다시 동기화됩니다.
절차
RAID 논리 볼륨을 생성합니다.
lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg
# lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg Logical volume "my_lv" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 생성된 RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 RAID 논리 볼륨에서 이미지를 분할하고 나머지 배열의 변경 사항을 추적합니다.
lvconvert --splitmirrors 1 --trackchanges my_vg/my_lv
# lvconvert --splitmirrors 1 --trackchanges my_vg/my_lv my_lv_rimage_2 split from my_lv for read-only purposes. Use 'lvconvert --merge my_vg/my_lv_rimage_2' to merge back into my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 이미지를 분할한 후 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨을 배열에 다시 병합합니다.
lvconvert --merge my_vg/my_lv_rimage_1
# lvconvert --merge my_vg/my_lv_rimage_1 my_vg/my_lv_rimage_1 successfully merged back into my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
병합된 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.17. 할당할 RAID 오류 정책 설정 링크 복사링크가 클립보드에 복사되었습니다!
raid_fault_policy
필드를 /etc/lvm/lvm.conf
파일의 allocate
매개변수로 설정할 수 있습니다. 이 기본 설정을 사용하면 시스템에서 실패한 장치를 볼륨 그룹의 예비 장치로 교체하려고 합니다. 예비 장치가 없으면 시스템 로그에 이 정보가 포함됩니다.
절차
RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/sdb 장치가 실패하면 RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/sdb 장치가 실패하는 경우 오류 메시지에 대한 시스템 로그를 볼 수도 있습니다.
lvm.conf
파일에할당
할raid_fault_policy
필드를 설정합니다.vi /etc/lvm/lvm.conf
# vi /etc/lvm/lvm.conf raid_fault_policy = "allocate"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고raid_fault_policy
를 할당
하도록 설정했지만 예비 장치가 없는 경우 할당이 실패하고 논리 볼륨을 그대로 둡니다. 할당에 실패하면lvconvert --repair
명령을 사용하여 실패한 장치를 수정하고 교체할 수 있습니다. 자세한 내용은 논리 볼륨에서 실패한 RAID 장치 교체를 참조하십시오.
검증
실패한 장치가 볼륨 그룹의 새 장치로 교체되었는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이제 실패한 장치가 교체되었지만 장치가 볼륨 그룹에서 아직 제거되지 않았기 때문에 LVM에서 실패한 장치를 찾을 수 없다는 표시가 계속 표시됩니다.
my_vg명령을 실행하여 볼륨 그룹에서 실패한 장치를 제거할
수 있습니다.
67.7.18. 경고로 RAID 오류 정책 설정 링크 복사링크가 클립보드에 복사되었습니다!
raid_fault_policy
필드를 lvm.conf
파일의 warn
매개변수로 설정할 수 있습니다. 이 기본 설정을 사용하면 시스템에서 실패한 장치를 나타내는 경고를 시스템 로그에 추가합니다. 경고에 따라 추가 단계를 확인할 수 있습니다.
기본적으로 raid_fault_policy
필드의 값은 lvm.conf
에서 warn
입니다.
프로세스
RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvm.conf 파일에서 warn로 raid_fault_policy 필드를 설정합니다.
vi /etc/lvm/lvm.conf
# vi /etc/lvm/lvm.conf # This configuration option has an automatic default value. raid_fault_policy = "warn"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/sdb 장치가 실패하는 경우 오류 메시지를 표시하도록 시스템 로그를 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/sdb 장치가 실패하면 시스템 로그에 오류 메시지가 표시됩니다. 그러나 이 경우 LVM은 이미지 중 하나를 교체하여 RAID 장치를 자동으로 복구하지 않습니다. 대신 장치가 실패한 경우 장치를
lvconvert
명령의--repair
인수로 교체할 수 있습니다. 자세한 내용은 논리 볼륨에서 실패한 RAID 장치 교체를 참조하십시오.
67.7.19. 작동 중인 RAID 장치 교체 링크 복사링크가 클립보드에 복사되었습니다!
lvconvert
명령의 --replace
인수를 사용하여 논리 볼륨에서 작동 중인 RAID 장치를 교체할 수 있습니다.
RAID 장치 오류가 발생하는 경우 다음 명령이 작동하지 않습니다.
사전 요구 사항
- RAID 장치가 실패하지 않았습니다.
프로세스
RAID1 배열을 생성합니다.
lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg
# lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg Logical volume "my_lv" created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 RAID1 배열을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 요구 사항에 따라 RAID 장치를 다음 방법으로 교체합니다.
교체할 물리 볼륨을 지정하여 RAID1 장치를 교체합니다.
lvconvert --replace /dev/sdb2 my_vg/my_lv
# lvconvert --replace /dev/sdb2 my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 교체에 사용할 물리 볼륨을 지정하여 RAID1 장치를 교체합니다.
lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
# lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 교체 인수를 지정하여 한 번에 여러 RAID 장치를 교체합니다.
lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv
# lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
교체할 물리 볼륨을 지정한 후 RAID1 배열을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 교체에 사용할 물리 볼륨을 지정한 후 RAID1 배열을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 한 번에 여러 RAID 장치를 교체한 후 RAID1 배열을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.20. 논리 볼륨에서 실패한 RAID 장치 교체 링크 복사링크가 클립보드에 복사되었습니다!
RAID는 기존 LVM 미러링과 동일하지 않습니다. LVM 미러링의 경우 실패한 장치를 제거합니다. 그렇지 않으면 RAID 배열이 실패한 장치에서 계속 실행되는 동안 미러링된 논리 볼륨이 중단됩니다. RAID1 이외의 RAID 수준의 경우 장치를 제거하면 RAID6에서 RAID5로 또는 RAID4 또는 RAID0으로의 낮은 RAID 수준으로의 변환을 의미합니다.
실패한 장치를 제거하고 교체를 LVM으로 할당하는 대신 lvconvert
명령의 --repair
인수를 사용하여 RAID 논리 볼륨에서 물리 볼륨으로 사용되는 실패한 장치를 교체할 수 있습니다.
사전 요구 사항
볼륨 그룹에는 실패한 장치를 교체할 수 있는 충분한 여유 용량을 제공하는 물리 볼륨이 포함됩니다.
볼륨 그룹에서 사용 가능한 확장 영역이 충분한 물리 볼륨이 없는 경우 Cryostatextend 유틸리티를 사용하여 충분히 큰
새
물리 볼륨을 추가합니다.
프로세스
RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/sdc 장치가 실패한 후 RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실패한 장치를 교체합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 실패한 장치를 대체하는 물리 볼륨을 수동으로 지정합니다.
lvconvert --repair my_vg/my_lv replacement_pv
# lvconvert --repair my_vg/my_lv replacement_pv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 교체를 사용하여 논리 볼륨을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨 그룹에서 실패한 장치를 제거할 때까지 LVM 유틸리티에 실패한 장치를 찾을 수 없다는 내용이 계속 표시됩니다.
볼륨 그룹에서 실패한 장치를 제거합니다.
vgreduce --removemissing my_vg
# vgreduce --removemissing my_vg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
실패한 장치를 제거한 후 사용 가능한 물리 볼륨을 확인합니다.
pvscan
# pvscan PV /dev/sde1 VG rhel_virt-506 lvm2 [<7.00 GiB / 0 free] PV /dev/sdb1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free] PV /dev/sdd1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free] PV /dev/sdd1 VG my_vg lvm2 [<60.00 GiB / 59.50 GiB free]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실패한 장치를 교체한 후 논리 볼륨을 검사합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.21. RAID 논리 볼륨에서 데이터 일관성 확인 링크 복사링크가 클립보드에 복사되었습니다!
LVM은 RAID 논리 볼륨에 대한 스크럽을 제공합니다. RAID 스크러빙은 배열의 모든 데이터 및 패리티 블록을 읽고 일관성이 있는지 확인하는 프로세스입니다. lvchange --syncaction repair
명령은 배열에서 백그라운드 동기화 작업을 시작합니다.
프로세스
선택 사항: 다음 옵션 중 하나를 설정하여 RAID 논리 볼륨이 초기화되는 속도를 제어합니다.
-
--maxrecoveryrate Rate[bBsSkKmMgG]
는 RAID 논리 볼륨의 최대 복구 속도를 설정하여 nominal I/O 작업을 확장하지 않도록 합니다. --minrecoveryrate Rate[bBsSkKmMgG]
는 RAID 논리 볼륨의 최소 복구 속도를 설정하여 동기화 작업의 I/O가 무분별 I/O가 있는 경우에도 최소 처리량을 달성하도록 합니다.lvchange --maxrecoveryrate 4K my_vg/my_lv
# lvchange --maxrecoveryrate 4K my_vg/my_lv Logical volume _my_vg/my_lv_changed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 4K 를 복구 속도 값으로 바꿉니다. 이 값은 배열의 각 장치에 대한 초당 양입니다. 접미사를 제공하지 않으면 옵션은 장치당 초당 kiB를 가정합니다.
lvchange --syncaction repair my_vg/my_lv
# lvchange --syncaction repair my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 스크러블링 작업을 수행할 때
동기화
작업에 필요한 백그라운드 I/O는 볼륨 그룹 메타데이터 업데이트 등 LVM 장치에 대한 다른 I/O의 충돌을 줄일 수 있습니다. 이로 인해 다른 LVM 작업이 느려질 수 있습니다.참고RAID 장치를 생성하는 동안 이러한 최대 및 최소 I/O 속도를 사용할 수도 있습니다. 예를 들어
lvcreate --type raid10 -i 2 -m 1 -l 1 -L 10G --maxrecoveryrate 128 -n my_vg
는 128 kiB/sec/device의 최대 복구 속도를 가진 볼륨 그룹 my_vg에 있는 볼륨 그룹 my_vg에서 최대 복구 속도를 가진 크기가 10G인 my_vg를 생성합니다.
-
배열의 불일치 수를 복구하지 않고 표시합니다.
lvchange --syncaction check my_vg/my_lv
# lvchange --syncaction check my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 배열에서 백그라운드 동기화 작업을 시작합니다.
-
선택 사항: 커널 메시지의
var/log/syslog
파일을 확인합니다. 배열의 불일치를 수정합니다.
lvchange --syncaction repair my_vg/my_lv
# lvchange --syncaction repair my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 RAID 논리 볼륨에서 실패한 장치를 복구하거나 교체합니다. 이 명령을 실행한 후 커널 메시지의
var/log/syslog
파일을 볼 수 있습니다.
검증
스크럽 작업에 대한 정보를 표시합니다.
lvs -o +raid_sync_action,raid_mismatch_count my_vg/my_lv
# lvs -o +raid_sync_action,raid_mismatch_count my_vg/my_lv LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert SyncAction Mismatches my_lv my_vg rwi-a-r--- 500.00m 100.00 idle 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.22. RAID1 논리 볼륨에서 I/O 작업 링크 복사링크가 클립보드에 복사되었습니다!
lvchange
명령의 --writemost 및
매개변수를 사용하여 RAID1 논리 볼륨에서 장치의 I/O 작업을 제어할 수 있습니다. 다음은 이러한 매개변수를 사용하는 형식입니다.
--write
behind
--[raid]writemostly PhysicalVolume[:{t|y|n}]
RAID1 논리 볼륨의 장치를
대부분 쓰기
로 표시하고 필요한 경우가 아니면 이러한 드라이브에 대한 모든 읽기 작업을 방지합니다. 이 매개변수를 설정하면 I/O 작업 수가 드라이브에 최소로 유지됩니다.lvchange --writemostly /dev/sdb my_vg/my_lv
명령을 사용하여 이 매개변수를 설정합니다.다음과 같은 방법으로
writemostly
속성을 설정할 수 있습니다.:y
-
기본적으로
writemostly
속성 값은 논리 볼륨에서 지정된 물리 볼륨에 대해 yes입니다. :n
-
writemostly
플래그를 제거하려면:n
을 물리 볼륨에 추가합니다. :t
writemostly 속성의 값을 토글하려면
--
인수를 지정합니다.writemostly
단일 명령에서 이 인수를 두 번 이상 사용할 수 있습니다(예:
lvchange --writemostly /dev/sdd1:n --writemostly /dev/sdb1:t --writemostly /dev/sdc1:y my_vg/my_lv
). 이를 통해 논리 볼륨의 모든 물리 볼륨에 대한쓰기
속성을 한 번에 전환할 수 있습니다.
--[raid]writebehind IOCount
writemostly
로 표시된 보류 중인 쓰기의 최대 수를 지정합니다. RAID1 논리 볼륨의 장치에 적용할 수 있는 쓰기 작업 수입니다. 이 매개 변수의 값을 초과한 후 RAID 배열에서 모든 쓰기 작업이 완료되도록 하기 전에 구성 장치에 대한 모든 쓰기 작업이 동기적으로 완료됩니다.lvchange --writebehind 100 my_vg/my_lv
명령을 사용하여 이 매개변수를 설정할 수 있습니다.writemostly
특성의 값을 0으로 설정하면 기본 설정이 지워집니다. 이 설정을 사용하면 시스템은 임의로 값을 선택합니다.
67.7.23. RAID 볼륨 교체 링크 복사링크가 클립보드에 복사되었습니다!
RAID 교체는 RAID 수준을 변경하지 않고 RAID 논리 볼륨의 속성을 변경하는 것을 의미합니다. 변경할 수 있는 일부 속성에는 RAID 레이아웃, 스트라이프 크기 및 스트라이프 수가 포함됩니다.
프로세스
RAID 논리 볼륨을 생성합니다.
lvcreate --type raid5 -i 2 -L 500M -n my_lv my_vg
# lvcreate --type raid5 -i 2 -L 500M -n my_lv my_vg Using default stripesize 64.00 KiB. Rounding size 500.00 MiB (125 extents) up to stripe boundary size 504.00 MiB (126 extents). Logical volume "my_lv" created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: RAID 논리 볼륨의
스트라이프
이미지 및 스트라이프lvs -o stripes my_vg/my_lv
# lvs -o stripes my_vg/my_lv #Str 3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvs -o stripesize my_vg/my_lv
# lvs -o stripesize my_vg/my_lv Stripe 64.00k
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 요구 사항에 따라 다음 방법을 사용하여 RAID 논리 볼륨의 속성을 수정합니다.
RAID 논리 볼륨의
스트라이프
이미지를 수정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리
볼륨의 스트라이프
크기를 수정합니다.lvconvert --stripesize 128k my_vg/my_lv
# lvconvert --stripesize 128k my_vg/my_lv Converting stripesize 64.00 KiB of raid5 LV my_vg/my_lv to 128.00 KiB. Are you sure you want to convert raid5 LV my_vg/my_lv? [y/n]: y Logical volume my_vg/my_lv successfully converted.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow maxrecoveryrate
및minrecoveryrate
속성을 수정합니다.lvchange --maxrecoveryrate 4M my_vg/my_lv
# lvchange --maxrecoveryrate 4M my_vg/my_lv Logical volume my_vg/my_lv changed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvchange --minrecoveryrate 1M my_vg/my_lv
# lvchange --minrecoveryrate 1M my_vg/my_lv Logical volume my_vg/my_lv changed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow syncaction
속성을 수정합니다.lvchange --syncaction check my_vg/my_lv
# lvchange --syncaction check my_vg/my_lv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow writemostly
및writebehind
속성을 수정합니다.lvchange --writemostly /dev/sdb my_vg/my_lv
# lvchange --writemostly /dev/sdb my_vg/my_lv Logical volume my_vg/my_lv changed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvchange --writebehind 100 my_vg/my_lv
# lvchange --writebehind 100 my_vg/my_lv Logical volume my_vg/my_lv changed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
RAID 논리 볼륨의
스트라이프
이미지 및 스트라이프lvs -o stripes my_vg/my_lv
# lvs -o stripes my_vg/my_lv #Str 4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lvs -o stripesize my_vg/my_lv
# lvs -o stripesize my_vg/my_lv Stripe 128.00k
Copy to Clipboard Copied! Toggle word wrap Toggle overflow maxrecoveryrate
특성을 수정한 후 RAID 논리 볼륨을 확인합니다.lvs -a -o +raid_max_recovery_rate
# lvs -a -o +raid_max_recovery_rate LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert MaxSync my_lv my_vg rwi-a-r--- 10.00g 100.00 4096 [my_lv_rimage_0] my_vg iwi-aor--- 10.00g [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow minrecoveryrate
특성을 수정한 후 RAID 논리 볼륨을 확인합니다.lvs -a -o +raid_min_recovery_rate
# lvs -a -o +raid_min_recovery_rate LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert MinSync my_lv my_vg rwi-a-r--- 10.00g 100.00 1024 [my_lv_rimage_0] my_vg iwi-aor--- 10.00g [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow syncaction
속성을 수정한 후 RAID 논리 볼륨을 확인합니다.lvs -a
# lvs -a LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert my_lv my_vg rwi-a-r--- 10.00g 2.66 [my_lv_rimage_0] my_vg iwi-aor--- 10.00g [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
67.7.24. RAID 논리 볼륨에서 영역 크기 변경 링크 복사링크가 클립보드에 복사되었습니다!
RAID 논리 볼륨을 생성할 때 /etc/lvm/lvm.conf
파일의 raid_region_size
매개변수는 RAID 논리 볼륨의 리전 크기를 나타냅니다. RAID 논리 볼륨을 생성한 후 볼륨의 영역 크기를 변경할 수 있습니다. 이 매개 변수는 더티 상태 또는 정리 상태를 추적하는 세분성을 정의합니다. 비트맵의 더티 비트는 RAID 볼륨의 더티 종료 후 동기화할 작업 세트를 정의합니다(예: 시스템 오류).
raid_region_size
를 더 높은 값으로 설정하면 비트맵 크기와 혼잡이 줄어듭니다. 그러나 RAID에 대한 쓰기
는 영역을 동기화할 때까지 지연되기 때문에 영역을 재동기화하는 동안 쓰기 작업에 영향을 미칩니다.
프로세스
RAID 논리 볼륨을 생성합니다.
lvcreate --type raid1 -m 1 -L 10G test
# lvcreate --type raid1 -m 1 -L 10G test Logical volume "lvol0" created.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Region 열은 raid_region_size 매개변수의 값을 나타냅니다.
선택 사항:
raid_region_size
매개변수의 값을 확인합니다.cat /etc/lvm/lvm.conf | grep raid_region_size Configuration option activation/raid_region_size. # raid_region_size = 2048
# cat /etc/lvm/lvm.conf | grep raid_region_size # Configuration option activation/raid_region_size. # raid_region_size = 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리 볼륨의 영역 크기를 변경합니다.
lvconvert -R 4096K my_vg/my_lv
# lvconvert -R 4096K my_vg/my_lv Do you really want to change the region_size 512.00 KiB of LV my_vg/my_lv to 4.00 MiB? [y/n]: y Changed region size on RAID LV my_vg/my_lv to 4.00 MiB.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow RAID 논리 볼륨을 다시 동기화합니다.
lvchange --resync my_vg/my_lv
# lvchange --resync my_vg/my_lv Do you really want to deactivate logical volume my_vg/my_lv to resync it? [y/n]: y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
RAID 논리 볼륨을 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Region 열은
raid_region_size
매개변수의 변경된 값을 나타냅니다.lvm.conf
파일에서raid_region_size
매개변수의 값을 확인합니다.cat /etc/lvm/lvm.conf | grep raid_region_size Configuration option activation/raid_region_size. # raid_region_size = 4096
# cat /etc/lvm/lvm.conf | grep raid_region_size # Configuration option activation/raid_region_size. # raid_region_size = 4096
Copy to Clipboard Copied! Toggle word wrap Toggle overflow