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_0lv_rmeta_1)과 두 개의 데이터 하위 볼륨(lv_rimage_0lv_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,raid6raid10 인 5 가지 기본 유형 중 하나를 지정하면 충분합니다.

다음 표에서는 가능한 RAID 세그먼트 유형을 설명합니다.

Expand
표 67.1. LVM RAID 세그먼트 유형
세그먼트 유형설명

raid1

RAID1 미러링. 스트라이핑을 지정하지 않고 -m 인수를 지정할 때 lvcreate 명령의 --type 인수의 기본값입니다.

raid4

RAID4 전용 패리티 디스크.

raid5_la

  • RAID5 왼쪽 symmetric.
  • 패리티 0을 데이터 연속으로 회전합니다.

raid5_ra

  • RAID5 올바른 비대칭.
  • 패리티 N을 데이터 연속으로 교체합니다.

raid5_ls

  • RAID5 왼쪽 대칭.
  • 이는 raid5 와 동일합니다.
  • 데이터 다시 시작으로 패리티 0을 회전합니다.

raid5_rs

  • RAID5 올바른 대칭.
  • 데이터 다시 시작으로 패리티 N을 회전합니다.

raid6_zr

  • RAID6 0을 다시 시작합니다.
  • 이는 raid6 과 동일합니다.
  • 데이터 다시 시작으로 패리티 0(오른쪽)을 회전합니다.

raid6_nr

  • RAID6을 다시 시작합니다.
  • 데이터 다시 시작으로 패리티 N(오른쪽)을 회전합니다.

raid6_nc

  • RAID6은 계속되지 않습니다.
  • 패리티 N (오른쪽-오른쪽)을 데이터 연속으로 회전합니다.

raid10

  • 제거된 미러입니다. 이 값은 -m 인수를 1보다 큰 스트라이프 수와 함께 지정하는 경우 lvcreate 명령의 --type 인수의 기본값입니다.
  • 미러 세트 제거.

raid0/raid0_meta

스트라이핑. RAID0은 스트라이프 크기 단위로 여러 데이터 하위 볼륨에 논리 볼륨 데이터를 분배합니다. 이는 성능을 높이는 데 사용됩니다. 데이터 하위 볼륨이 실패하는 경우 논리 볼륨 데이터가 손실됩니다.

67.7.3. RAID0 생성을 위한 매개변수

lvcreate --type raid0[meta] --stripes --stripesize Stripesize StripeSize VolumeGroup [PhysicalVolumePath] 명령을 사용하여 RAID0이 제거된 논리 볼륨을 생성할 수 있습니다.

다음 표에는 RAID0 스트라이핑된 논리 볼륨을 만드는 동안 사용할 수 있는 다양한 매개변수가 설명되어 있습니다.

Expand
표 67.2. RAID0 스트라이핑된 논리 볼륨을 생성하기 위한 매개변수
매개변수설명

--type raid0[_meta]

raid0 을 지정하면 메타데이터 볼륨 없이 RAID0 볼륨이 생성됩니다. raid0_meta 를 지정하면 메타데이터 볼륨이 포함된 RAID0 볼륨이 생성됩니다. RAID0은 반대할 수 없으므로 미러링된 데이터 블록을 RAID1/10으로 저장하거나 패리티 블록을 RAID4/5/6으로 계산하고 저장하지 않습니다. 따라서 미러링된 또는 패리티 블록의 재동기화 진행 상황을 유지하기 위해 메타데이터 볼륨이 필요하지 않습니다. RAID0에서 RAID4/5/6/10으로 변환하면 메타데이터 볼륨이 필수입니다. raid0_meta 를 지정하면 각 할당 실패를 방지하기 위해 해당 메타데이터 볼륨을 사전 할당합니다.

--stripes Stripes

논리 볼륨을 분산할 장치 수를 지정합니다.

--stripesize StripeSize

각 스트라이프의 크기를 킬로바이트 단위로 지정합니다. 이는 다음 장치로 이동하기 전에 한 장치에 기록된 데이터의 양입니다.

VolumeGroup

사용할 볼륨 그룹을 지정합니다.

PhysicalVolumePath

사용할 장치를 지정합니다. 지정하지 않으면 LVM에서 Stripes 옵션에 지정된 장치 수를 선택합니다. 각 스트라이프에 대해 하나씩 선택합니다.

67.7.4. RAID 논리 볼륨 생성

-m 인수에 지정하는 값에 따라 여러 수의 복사본을 사용하여 RAID1 배열을 생성할 수 있습니다. 마찬가지로 -i 인수를 사용하여 RAID 0, 4, 5, 6, 10 논리 볼륨의 스트라이프 수를 지정할 수 있습니다. -I 인수를 사용하여 스트라이프 크기를 지정할 수도 있습니다. 다음 절차에서는 다양한 유형의 RAID 논리 볼륨을 생성하는 다양한 방법을 설명합니다.

프로세스

  • 2방향 RAID를 생성합니다. 다음 명령은 볼륨 그룹 my_vg 에서 크기가 1Gmy_lv 라는 2방향 RAID1 배열을 생성합니다.

    # lvcreate --type raid1 -m 1 -L 1G -n my_lv my_vg
    Logical volume "my_lv" created.
    Copy to Clipboard Toggle word wrap
  • 스트라이프를 사용하여 RAID5 배열을 생성합니다. 다음 명령은 세 개의 스트라이프가 있는 RAID5 배열과 크기 my_lv에서 my_lv 라는 하나의 암시적 패리티 드라이브를 생성합니다. 즉 크기가 1G 입니다. LVM 스트라이핑 볼륨과 유사한 스트라이프 수를 지정할 수 있습니다. 올바른 패리티 드라이브 수가 자동으로 추가됩니다.

    # lvcreate --type raid5 -i 3 -L 1G -n my_lv my_vg
    Copy to Clipboard Toggle word wrap
  • 스트라이프를 사용하여 RAID6 배열을 생성합니다. 다음 명령은 3개의 스트라이프 3개의 스트라이프와 두 개의 암시적 패리티 드라이브를 사용하여 RAID6 배열을 생성합니다. my_lv 는 볼륨 그룹 my_vg 에서 1G 1 기가바이트 크기입니다.

    # lvcreate --type raid6 -i 3 -L 1G -n my_lv my_vg
    Copy to Clipboard Toggle word wrap

검증

  • 2방향 RAID1 배열인 LVM 장치 my_vg/my_lv 를 표시합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV                Copy%  Devices
      my_lv             6.25    my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]         /dev/sde1(0)
      [my_lv_rimage_1]         /dev/sdf1(1)
      [my_lv_rmeta_0]          /dev/sde1(256)
      [my_lv_rmeta_1]          /dev/sdf1(0)
    Copy to Clipboard Toggle word wrap

67.7.5. 스토리지 RHEL 시스템 역할을 사용하여 RAID로 LVM 풀 구성

스토리지 시스템 역할을 사용하면 Red Hat Ansible Automation Platform을 사용하여 RHEL에서 RAID로 LVM 풀을 구성할 수 있습니다. 사용 가능한 매개 변수로 Ansible 플레이북을 설정하여 RAID로 LVM 풀을 구성할 수 있습니다.

사전 요구 사항

프로세스

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Configure LVM pool with RAID
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_safe_mode: false
            storage_pools:
              - name: my_pool
                type: lvm
                disks: [sdh, sdi]
                raid_level: raid1
                volumes:
                  - name: my_volume
                    size: "1 GiB"
                    mount_point: "/mnt/app/shared"
                    fs_type: xfs
                    state: present
    Copy to Clipboard Toggle word wrap

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. Playbook을 실행합니다.

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

검증

  • 풀이 RAID에 있는지 확인합니다.

    # ansible managed-node-01.example.com -m command -a 'lsblk'
    Copy to Clipboard Toggle word wrap

67.7.6. RAID0 스트라이핑 논리 볼륨 생성

RAID0 논리 볼륨은 스트라이프 크기 단위로 여러 데이터 하위 볼륨에 논리 볼륨 데이터를 분배합니다. 다음 절차에서는 디스크 전체에서 데이터를 스트라이핑하는 mylv 라는 LVM RAID0 논리 볼륨을 생성합니다.

사전 요구 사항

  1. 세 개 이상의 물리 볼륨을 생성했습니다. 물리 볼륨 생성에 대한 자세한 내용은 LVM 물리 볼륨 생성 을 참조하십시오.
  2. 볼륨 그룹을 생성했습니다. 자세한 내용은 LVM 볼륨 그룹 생성 을 참조하십시오.

프로세스

  1. 기존 볼륨 그룹에서 RAID0 논리 볼륨을 생성합니다. 다음 명령은 볼륨 그룹 myvg 에서 3개의 스트라이프와 4kB 의 스트라이프 크기를 사용하여 크기가 2Gmylv 볼륨 mylv를 생성합니다.

    # 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 Toggle word wrap
  2. RAID0 논리 볼륨에 파일 시스템을 생성합니다. 다음 명령은 논리 볼륨에 ext4 파일 시스템을 생성합니다.

    # mkfs.ext4 /dev/my_vg/mylv
    Copy to Clipboard Toggle word wrap
  3. 논리 볼륨을 마운트하고 파일 시스템 디스크 공간 사용량을 보고합니다.

    # 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 Toggle word wrap

검증

  • 생성된 RAID0 제거된 논리 볼륨을 확인합니다.

    # lvs -a -o +devices,segtype my_vg
      LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices Type
      mylv my_vg rwi-a-r--- 2.00g mylv_rimage_0(0),mylv_rimage_1(0),mylv_rimage_2(0) raid0
      [mylv_rimage_0] my_vg iwi-aor--- 684.00m /dev/sdf1(0) linear
      [mylv_rimage_1] my_vg iwi-aor--- 684.00m /dev/sdg1(0) linear
      [mylv_rimage_2] my_vg iwi-aor--- 684.00m /dev/sdh1(0) linear
    Copy to Clipboard Toggle word wrap

스토리지 시스템 역할을 사용하면 Red Hat Ansible Automation Platform을 사용하여 RHEL에서 RAID LVM 볼륨의 스트라이프 크기를 구성할 수 있습니다. 사용 가능한 매개 변수로 Ansible 플레이북을 설정하여 RAID로 LVM 풀을 구성할 수 있습니다.

사전 요구 사항

프로세스

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    ---
    - name: Manage local storage
      hosts: managed-node-01.example.com
      tasks:
        - name: Configure stripe size for RAID LVM volumes
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.storage
          vars:
            storage_safe_mode: false
            storage_pools:
              - name: my_pool
                type: lvm
                disks: [sdh, sdi]
                volumes:
                  - name: my_volume
                    size: "1 GiB"
                    mount_point: "/mnt/app/shared"
                    fs_type: xfs
                    raid_level: raid0
                    raid_stripe_size: "256 KiB"
                    state: present
    Copy to Clipboard Toggle word wrap

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.storage/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml
    Copy to Clipboard Toggle word wrap

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  3. Playbook을 실행합니다.

    $ ansible-playbook ~/playbook.yml
    Copy to Clipboard Toggle word wrap

검증

  • 스트라이프 크기가 필요한 크기로 설정되어 있는지 확인합니다.

    # ansible managed-node-01.example.com -m command -a 'lvs -o+stripesize /dev/my_pool/my_volume'
    Copy to Clipboard Toggle word wrap

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 계층을 사용하면 손상되지 않은 데이터 사본이 소프트 손상 오류를 수정할 수 있습니다.

절차

  1. DM 무결성을 사용하여 RAID LV를 생성합니다. 다음 예제에서는 256M 및 RAID 수준 1 의 사용 가능한 크기로 my_vg 볼륨 그룹에 test-lv 라는 무결성이 있는 새 RAID LV를 생성합니다.

    # lvcreate --type raid1 --raidintegrity y -L 256M -n test-lv my_vg
    Creating integrity metadata LV test-lv_rimage_0_imeta with size 8.00 MiB.
    Logical volume "test-lv_rimage_0_imeta" created.
    Creating integrity metadata LV test-lv_rimage_1_imeta with size 8.00 MiB.
    Logical volume "test-lv_rimage_1_imeta" created.
    Logical volume "test-lv" created.
    Copy to Clipboard Toggle word wrap
    참고

    기존 RAID LV에 DM 무결성을 추가하려면 다음 명령을 사용합니다.

    # lvconvert --raidintegrity y my_vg/test-lv
    Copy to Clipboard Toggle word wrap

    RAID LV에 무결성을 추가하면 해당 RAID LV에서 수행할 수 있는 작업 수가 제한됩니다.

  2. 선택 사항: 특정 작업을 수행하기 전에 무결성을 제거합니다.

    # lvconvert --raidintegrity n my_vg/test-lv
    Logical volume my_vg/test-lv has removed integrity.
    Copy to Clipboard Toggle word wrap

검증

  • 추가된 DM 무결성에 대한 정보를 확인합니다.

    • my_vg 볼륨 그룹에 생성된 test-lv RAID LV에 대한 정보를 확인합니다.

      # lvs -a my_vg
        LV                        VG      Attr       LSize   Origin                 Cpy%Sync
        test-lv                   my_vg rwi-a-r--- 256.00m                          2.10
        [test-lv_rimage_0]        my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 93.75
        [test-lv_rimage_0_imeta]  my_vg ewi-ao----   8.00m
        [test-lv_rimage_0_iorig]  my_vg -wi-ao---- 256.00m
        [test-lv_rimage_1]        my_vg gwi-aor--- 256.00m [test-lv_rimage_1_iorig] 85.94
       [...]
      Copy to Clipboard Toggle word wrap

      다음은 이 출력과 다양한 옵션을 설명합니다.

      G 속성
      Attr 열 아래의 특성 목록은 RAID 이미지가 무결성을 사용하고 있음을 나타냅니다. 무결성은 체크섬을 _imeta RAID LV에 저장합니다.
      CPY%Sync
      이는 최상위 RAID LV와 각 RAID 이미지의 동기화 진행 상황을 나타냅니다.
      RAID 이미지
      raid_image_N 로 LV 열에 표시됩니다.
      LV
      동기화 진행 상황을 통해 최상위 RAID LV 및 각 RAID 이미지에 대해 100%로 표시됩니다.
    • 각 RAID LV의 유형을 표시합니다.

      # lvs -a my-vg -o+segtype
        LV                       VG      Attr       LSize   Origin                 Cpy%Sync Type
        test-lv                  my_vg rwi-a-r--- 256.00m                          87.96    raid1
        [test-lv_rimage_0]       my_vg gwi-aor--- 256.00m [test-lv_rimage_0_iorig] 100.00   integrity
        [test-lv_rimage_0_imeta] my_vg ewi-ao----   8.00m                                   linear
        [test-lv_rimage_0_iorig] my_vg -wi-ao---- 256.00m                                   linear
        [test-lv_rimage_1]       my_vg gwi-aor--- 256.00m [test-lv_rimage_1_iorig] 100.00   integrity
       [...]
      Copy to Clipboard Toggle word wrap
    • 각 RAID 이미지에서 감지된 불일치 수를 계산하는 증분 카운터가 있습니다. 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 Toggle word wrap

      이 예에서 무결성은 데이터 불일치를 감지하지 못하므로 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 수준을 변경하여 장치 오류에 대한 복원력을 늘리거나 줄일 수 있습니다.

절차

  1. RAID 논리 볼륨을 생성합니다.

    # 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 Toggle word wrap
  2. RAID 논리 볼륨을 확인합니다.

    # 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 Toggle word wrap
  3. RAID 논리 볼륨을 다른 RAID 수준으로 변환합니다.

    # lvconvert --type raid6 my_vg/my_lv
    Using default stripesize 64.00 KiB.
    Replaced LV type raid6 (same as raid6_zr) with possible type raid6_ls_6.
    Repeat this command to convert to raid6 after an interim conversion has finished.
    Are you sure you want to convert raid5 LV my_vg/my_lv to raid6_ls_6 type? [y/n]: y
    Logical volume my_vg/my_lv successfully converted.
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 이 명령이 변환을 반복하도록 요청하는 메시지를 표시하는 경우 다음을 실행합니다.

    # lvconvert --type raid6 my_vg/my_lv
    Copy to Clipboard Toggle word wrap

검증

  1. 변환된 RAID 수준으로 RAID 논리 볼륨을 확인합니다.

    # 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 Toggle word wrap

67.7.11. 선형 장치를 RAID 논리 볼륨으로 변환

기존 선형 논리 볼륨을 RAID 논리 볼륨으로 변환할 수 있습니다. 이 작업을 수행하려면 lvconvert 명령의 --type 인수를 사용합니다.

RAID 논리 볼륨은 메타데이터 및 데이터 하위 볼륨 쌍으로 구성됩니다. 선형 장치를 RAID1 배열로 변환하면 새 메타데이터 하위 볼륨을 생성하고 선형 볼륨이 있는 동일한 물리 볼륨 중 하나에서 원래 논리 볼륨에 연결합니다. 추가 이미지는 metadata/data 하위 볼륨 쌍에 추가됩니다. 원래 논리 볼륨과 쌍을 동일한 물리 볼륨에 배치할 수 없는 메타데이터 이미지를 동일한 물리 볼륨에 배치할 수 없는 경우 lvconvert 가 실패합니다.

절차

  1. 변환해야 하는 논리 볼륨 장치를 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV     Copy%  Devices
      my_lv         /dev/sde1(0)
    Copy to Clipboard Toggle word wrap
  2. 선형 논리 볼륨을 RAID 장치로 변환합니다. 다음 명령은 볼륨 그룹 __my_vg의 선형 논리 볼륨 my_lv 를 2방향 RAID1 배열로 변환합니다.

    # 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 Toggle word wrap

검증

  • 논리 볼륨이 RAID 장치로 변환되었는지 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            6.25   my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(0)
      [my_lv_rimage_1]        /dev/sdf1(1)
      [my_lv_rmeta_0]         /dev/sde1(256)
      [my_lv_rmeta_1]         /dev/sdf1(0)
    Copy to Clipboard Toggle word wrap

67.7.12. LVM RAID1 논리 볼륨을 LVM 선형 논리 볼륨으로 변환

기존 RAID1 LVM 논리 볼륨을 LVM 선형 논리 볼륨으로 변환할 수 있습니다. 이 작업을 수행하려면 lvconvert 명령을 사용하고 -m0 인수를 지정합니다. 이렇게 하면 RAID 배열을 구성하는 모든 RAID 데이터 하위 볼륨과 RAID 배열을 구성하는 모든 RAID 메타데이터 하위 볼륨이 제거되어 최상위 RAID1 이미지가 선형 논리 볼륨으로 유지됩니다.

절차

  1. 기존 LVM RAID1 논리 볼륨을 표시합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(1)
      [my_lv_rimage_1]        /dev/sdf1(1)
      [my_lv_rmeta_0]         /dev/sde1(0)
      [my_lv_rmeta_1]         /dev/sdf1(0)
    Copy to Clipboard Toggle word wrap
  2. 기존 RAID1 LVM 논리 볼륨을 LVM 선형 논리 볼륨으로 변환합니다. 다음 명령은 LVM RAID1 논리 볼륨 my_vg/my_lv 를 LVM 선형 장치로 변환합니다.

    # 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 Toggle word wrap

    LVM RAID1 논리 볼륨을 LVM 선형 볼륨으로 변환할 때 제거할 물리 볼륨도 지정할 수 있습니다. 다음 예에서 lvconvert 명령은 /dev/sde1 을 제거하고 선형 장치를 구성하는 물리 볼륨으로 /dev/sdf1 을 남겨 둡니다.

    # lvconvert -m0 my_vg/my_lv /dev/sde1
    Copy to Clipboard Toggle word wrap

검증

  • RAID1 논리 볼륨이 LVM 선형 장치로 변환되었는지 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV    Copy%  Devices
      my_lv        /dev/sdf1(1)
    Copy to Clipboard Toggle word wrap

67.7.13. 미러링된 LVM 장치를 RAID1 논리 볼륨으로 변환

세그먼트 유형 미러를 사용하여 기존 미러링된 LVM 장치를 RAID1 LVM 장치로 변환할 수 있습니다. 이 작업을 수행하려면 --type raid1 인수와 함께 lvconvert 명령을 사용합니다. mimage 라는 미러 하위 볼륨의 이름을 rimage 라는 RAID 하위 볼륨으로 변경합니다.

또한 미러 로그를 제거하고 해당 데이터 하위 볼륨과 동일한 물리 볼륨의 data 하위 볼륨에 대해 rmeta 라는 메타데이터 하위 볼륨을 생성합니다.

절차

  1. 미러링된 논리 볼륨 my_vg/my_lv 의 레이아웃을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             15.20 my_lv_mimage_0(0),my_lv_mimage_1(0)
      [my_lv_mimage_0]        /dev/sde1(0)
      [my_lv_mimage_1]        /dev/sdf1(0)
      [my_lv_mlog]            /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  2. 미러링된 논리 볼륨 my_vg/my_lv 를 RAID1 논리 볼륨으로 변환합니다.

    # 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 Toggle word wrap

검증

  • 미러링된 논리 볼륨이 RAID1 논리 볼륨으로 변환되었는지 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(0)
      [my_lv_rimage_1]        /dev/sdf1(0)
      [my_lv_rmeta_0]         /dev/sde1(125)
      [my_lv_rmeta_1]         /dev/sdf1(125)
    Copy to Clipboard Toggle word wrap

67.7.14. 기존 RAID1 장치의 이미지 수 변경

LVM 미러링 구현의 이미지 수를 변경할 수 있는 방식과 유사하게 기존 RAID1 배열의 이미지 수를 변경할 수 있습니다.

lvconvert 명령을 사용하여 RAID1 논리 볼륨에 이미지를 추가하면 다음 작업을 수행할 수 있습니다.

  • 결과 장치의 총 이미지 수를 지정합니다.
  • 장치에 추가할 이미지 수 및
  • 새 메타데이터/데이터 이미지 쌍이 상주하는 물리 볼륨을 선택적으로 지정할 수 있습니다.

절차

  1. 2방향 RAID1 배열인 LVM 장치 my_vg/my_lv 를 표시합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV                Copy%  Devices
      my_lv             6.25    my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]         /dev/sde1(0)
      [my_lv_rimage_1]         /dev/sdf1(1)
      [my_lv_rmeta_0]          /dev/sde1(256)
      [my_lv_rmeta_1]          /dev/sdf1(0)
    Copy to Clipboard Toggle word wrap

    rmeta 라는 메타데이터 하위 볼륨은 항상 data 하위 볼륨 rimage 와 동일한 물리적 장치에 존재합니다. 메타데이터/데이터 하위 볼륨 쌍은 어디서든 --alloc 을 지정하지 않는 한 RAID 배열의 다른 metadata/data 하위 볼륨 쌍과 동일한 물리 볼륨에 생성되지 않습니다.

  2. 2방향 RAID1 논리 볼륨 my_vg/my_lv 를 3방향 RAID1 논리 볼륨으로 변환합니다.

    # 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 Toggle word wrap

    다음은 기존 RAID1 장치의 이미지 수를 변경하는 몇 가지 예입니다.

    • RAID에 이미지를 추가하는 동안 사용할 물리 볼륨을 지정할 수도 있습니다. 다음 명령은 배열에 사용할 물리 볼륨 /dev/sdd1 을 지정하여 2-way RAID1 논리 볼륨 my_vg/my_lv 를 3-way RAID1 논리 볼륨으로 변환합니다.

      # lvconvert -m 2 my_vg/my_lv /dev/sdd1
      Copy to Clipboard Toggle word wrap
    • 3방향 RAID1 논리 볼륨을 2방향 RAID1 논리 볼륨으로 변환합니다.

      # 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 Toggle word wrap
    • 제거할 이미지가 포함된 물리 볼륨 /dev/sde1 을 지정하여 3-way RAID1 논리 볼륨을 2방향 RAID1 논리 볼륨으로 변환합니다.

      # lvconvert -m1 my_vg/my_lv /dev/sde1
      Copy to Clipboard Toggle word wrap

      또한 이미지 및 관련 메타데이터 하위 볼륨을 제거하면 번호가 높은 이미지가 아래로 전환되어 슬롯을 채웁니다. lv_rimage_0, lv_rimage_1lv_rimage_2 로 구성된 3-way RAID1 배열에서lv_rimage_1 을 제거하면 lv_rimage_0lv_rimage_1 로 구성된 RAID1 배열이 생성됩니다. 하위 볼륨 lv_rimage_2 는 이름이 변경되고 빈 슬롯을 대체하여 lv_rimage_1 이 됩니다.

검증

  • 기존 RAID1 장치의 이미지 수를 변경한 후 RAID1 장치를 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV Cpy%Sync Devices
      my_lv 100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0] /dev/sdd1(1)
      [my_lv_rimage_1] /dev/sde1(1)
      [my_lv_rimage_2] /dev/sdf1(1)
      [my_lv_rmeta_0] /dev/sdd1(0)
      [my_lv_rmeta_1] /dev/sde1(0)
      [my_lv_rmeta_2] /dev/sdf1(0)
    Copy to Clipboard Toggle word wrap

67.7.15. RAID 이미지를 별도의 논리 볼륨으로 분할

RAID 논리 볼륨의 이미지를 분할하여 새 논리 볼륨을 형성할 수 있습니다. 기존 RAID1 논리 볼륨에서 RAID 이미지를 제거하거나 장치 중앙에서 RAID 데이터 하위 볼륨 및 관련 메타데이터 하위 볼륨을 제거하면 더 많은 수의 이미지가 슬롯을 채우도록 아래로 이동합니다. 따라서 RAID 배열을 구성하는 논리 볼륨의 인덱스 번호는 정수의 눈에 띄지 않는 시퀀스가 됩니다.

참고

RAID1 배열이 아직 동기화되지 않은 경우 RAID 이미지를 분할할 수 없습니다.

절차

  1. 2방향 RAID1 배열인 LVM 장치 my_vg/my_lv 를 표시합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             12.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sde1(1)
      [my_lv_rimage_1]        /dev/sdf1(1)
      [my_lv_rmeta_0]         /dev/sde1(0)
      [my_lv_rmeta_1]         /dev/sdf1(0)
    Copy to Clipboard Toggle word wrap
  2. RAID 이미지를 별도의 논리 볼륨으로 분할합니다.

    • 다음 예제에서는 2방향 RAID1 논리 볼륨인 my_lv 를 두 개의 선형 논리 볼륨인 my_lvnew 로 분할합니다.

      # 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 Toggle word wrap
    • 다음 예제에서는 3방향 RAID1 논리 볼륨인 my_lv 를 2방향 RAID1 논리 볼륨, my_lv 및 선형 논리 볼륨 new 로 분할합니다.

      # lvconvert --splitmirror 1 -n new my_vg/my_lv
      Copy to Clipboard Toggle word wrap

검증

  • RAID 논리 볼륨의 이미지를 분할한 후 논리 볼륨을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV      Copy%  Devices
      my_lv          /dev/sde1(1)
      new            /dev/sdf1(1)
    Copy to Clipboard Toggle word wrap

67.7.16. RAID 이미지 분할 및 병합

lvconvert 명령의 --splitmirrors 인수와 함께 --trackchanges 인수를 사용하여 변경 사항을 추적하는 동안 읽기 전용 사용을 위해 RAID1 배열의 이미지를 일시적으로 분할할 수 있습니다. 이 기능을 사용하면 나중에 이미지를 배열에 병합하고 이미지가 분할된 이후 변경된 배열의 일부만 다시 동기화할 수 있습니다.

--trackchanges 인수를 사용하여 RAID 이미지를 분할하면 분할할 이미지를 지정할 수 있지만 분할되는 볼륨의 이름을 변경할 수는 없습니다. 또한 결과 볼륨에는 다음과 같은 제약 조건이 있습니다.

  • 생성한 새 볼륨은 읽기 전용입니다.
  • 새 볼륨의 크기를 조정할 수 없습니다.
  • 나머지 배열의 이름을 변경할 수 없습니다.
  • 나머지 배열의 크기를 조정할 수 없습니다.
  • 새 볼륨과 나머지 배열을 독립적으로 활성화할 수 있습니다.

분할된 이미지를 병합할 수 있습니다. 이미지를 병합할 때 이미지 분할 이후 변경된 배열의 일부만 다시 동기화됩니다.

절차

  1. RAID 논리 볼륨을 생성합니다.

    # lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg
      Logical volume "my_lv" created
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 생성된 RAID 논리 볼륨을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv          100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [my_lv_rimage_2]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc1(0)
      [my_lv_rmeta_2]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  3. 생성된 RAID 논리 볼륨에서 이미지를 분할하고 나머지 배열의 변경 사항을 추적합니다.

    # 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 Toggle word wrap
  4. 선택 사항: 이미지를 분할한 후 논리 볼륨을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sdc1(1)
      [my_lv_rimage_1]          /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdc1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  5. 볼륨을 배열에 다시 병합합니다.

    # 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 Toggle word wrap

검증

  • 병합된 논리 볼륨을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sdc1(1)
      [my_lv_rimage_1]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdc1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap

67.7.17. 할당할 RAID 오류 정책 설정

raid_fault_policy 필드를 /etc/lvm/lvm.conf 파일의 allocate 매개변수로 설정할 수 있습니다. 이 기본 설정을 사용하면 시스템에서 실패한 장치를 볼륨 그룹의 예비 장치로 교체하려고 합니다. 예비 장치가 없으면 시스템 로그에 이 정보가 포함됩니다.

절차

  1. RAID 논리 볼륨을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
    
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [my_lv_rimage_2]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc1(0)
      [my_lv_rmeta_2]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  2. /dev/sdb 장치가 실패하면 RAID 논리 볼륨을 확인합니다.

    # lvs --all --options name,copy_percent,devices my_vg
    
      /dev/sdb: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices.
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        [unknown](1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [...]
    Copy to Clipboard Toggle word wrap

    /dev/sdb 장치가 실패하는 경우 오류 메시지에 대한 시스템 로그를 볼 수도 있습니다.

  3. lvm.conf 파일에 할당raid_fault_policy 필드를 설정합니다.

     # vi /etc/lvm/lvm.conf
     raid_fault_policy = "allocate"
    Copy to Clipboard Toggle word wrap
    참고

    raid_fault_policy 를 할당 하도록 설정했지만 예비 장치가 없는 경우 할당이 실패하고 논리 볼륨을 그대로 둡니다. 할당에 실패하면 lvconvert --repair 명령을 사용하여 실패한 장치를 수정하고 교체할 수 있습니다. 자세한 내용은 논리 볼륨에서 실패한 RAID 장치 교체를 참조하십시오.

검증

  • 실패한 장치가 볼륨 그룹의 새 장치로 교체되었는지 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      Couldn't find device with uuid 3lugiV-3eSP-AFAR-sdrP-H20O-wM2M-qdMANy.
      LV            Copy%  Devices
      lv            100.00 lv_rimage_0(0),lv_rimage_1(0),lv_rimage_2(0)
      [lv_rimage_0]        /dev/sdh1(1)
      [lv_rimage_1]        /dev/sdc1(1)
      [lv_rimage_2]        /dev/sdd1(1)
      [lv_rmeta_0]         /dev/sdh1(0)
      [lv_rmeta_1]         /dev/sdc1(0)
      [lv_rmeta_2]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
    참고

    이제 실패한 장치가 교체되었지만 장치가 볼륨 그룹에서 아직 제거되지 않았기 때문에 LVM에서 실패한 장치를 찾을 수 없다는 표시가 계속 표시됩니다. my_vg명령을 실행하여 볼륨 그룹에서 실패한 장치를 제거할 수 있습니다.

67.7.18. 경고로 RAID 오류 정책 설정

raid_fault_policy 필드를 lvm.conf 파일의 warn 매개변수로 설정할 수 있습니다. 이 기본 설정을 사용하면 시스템에서 실패한 장치를 나타내는 경고를 시스템 로그에 추가합니다. 경고에 따라 추가 단계를 확인할 수 있습니다.

기본적으로 raid_fault_policy 필드의 값은 lvm.conf 에서 warn 입니다.

프로세스

  1. RAID 논리 볼륨을 확인합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc1(1)
      [my_lv_rimage_2]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc1(0)
      [my_lv_rmeta_2]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  2. lvm.conf 파일에서 warn로 raid_fault_policy 필드를 설정합니다.

    # vi /etc/lvm/lvm.conf
     # This configuration option has an automatic default value.
     raid_fault_policy = "warn"
    Copy to Clipboard Toggle word wrap
  3. /dev/sdb 장치가 실패하는 경우 오류 메시지를 표시하도록 시스템 로그를 확인합니다.

    # grep lvm /var/log/messages
    
    Apr 14 18:48:59 virt-506 kernel: sd 25:0:0:0: rejecting I/O to offline device
    Apr 14 18:48:59 virt-506 kernel: I/O error, dev sdb, sector 8200 op 0x1:(WRITE) flags 0x20800 phys_seg 0 prio class 2
    [...]
    Apr 14 18:48:59 virt-506 dmeventd[91060]: WARNING: VG my_vg is missing PV 9R2TVV-bwfn-Bdyj-Gucu-1p4F-qJ2Q-82kCAF (last written to /dev/sdb).
    Apr 14 18:48:59 virt-506 dmeventd[91060]: WARNING: Couldn't find device with uuid 9R2TVV-bwfn-Bdyj-Gucu-1p4F-qJ2Q-82kCAF.
    Apr 14 18:48:59 virt-506 dmeventd[91060]: Use 'lvconvert --repair my_vg/ly_lv' to replace failed device.
    Copy to Clipboard Toggle word wrap

    /dev/sdb 장치가 실패하면 시스템 로그에 오류 메시지가 표시됩니다. 그러나 이 경우 LVM은 이미지 중 하나를 교체하여 RAID 장치를 자동으로 복구하지 않습니다. 대신 장치가 실패한 경우 장치를 lvconvert 명령의 --repair 인수로 교체할 수 있습니다. 자세한 내용은 논리 볼륨에서 실패한 RAID 장치 교체를 참조하십시오.

67.7.19. 작동 중인 RAID 장치 교체

lvconvert 명령의 --replace 인수를 사용하여 논리 볼륨에서 작동 중인 RAID 장치를 교체할 수 있습니다.

주의

RAID 장치 오류가 발생하는 경우 다음 명령이 작동하지 않습니다.

사전 요구 사항

  • RAID 장치가 실패하지 않았습니다.

프로세스

  1. RAID1 배열을 생성합니다.

    # lvcreate --type raid1 -m 2 -L 1G -n my_lv my_vg
      Logical volume "my_lv" created
    Copy to Clipboard Toggle word wrap
  2. 생성된 RAID1 배열을 검사합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv            100.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdb2(1)
      [my_lv_rimage_2]        /dev/sdc1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdb2(0)
      [my_lv_rmeta_2]         /dev/sdc1(0)
    Copy to Clipboard Toggle word wrap
  3. 요구 사항에 따라 RAID 장치를 다음 방법으로 교체합니다.

    1. 교체할 물리 볼륨을 지정하여 RAID1 장치를 교체합니다.

      # lvconvert --replace /dev/sdb2 my_vg/my_lv
      Copy to Clipboard Toggle word wrap
    2. 교체에 사용할 물리 볼륨을 지정하여 RAID1 장치를 교체합니다.

      # lvconvert --replace /dev/sdb1 my_vg/my_lv /dev/sdd1
      Copy to Clipboard Toggle word wrap
    3. 여러 교체 인수를 지정하여 한 번에 여러 RAID 장치를 교체합니다.

      # lvconvert --replace /dev/sdb1 --replace /dev/sdc1 my_vg/my_lv
      Copy to Clipboard Toggle word wrap

검증

  1. 교체할 물리 볼륨을 지정한 후 RAID1 배열을 검사합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             37.50 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sdb1(1)
      [my_lv_rimage_1]        /dev/sdc2(1)
      [my_lv_rimage_2]        /dev/sdc1(1)
      [my_lv_rmeta_0]         /dev/sdb1(0)
      [my_lv_rmeta_1]         /dev/sdc2(0)
      [my_lv_rmeta_2]         /dev/sdc1(0)
    Copy to Clipboard Toggle word wrap
  2. 교체에 사용할 물리 볼륨을 지정한 후 RAID1 배열을 검사합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             28.00 my_lv_rimage_0(0),my_lv_rimage_1(0)
      [my_lv_rimage_0]        /dev/sda1(1)
      [my_lv_rimage_1]        /dev/sdd1(1)
      [my_lv_rmeta_0]         /dev/sda1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  3. 한 번에 여러 RAID 장치를 교체한 후 RAID1 배열을 검사합니다.

    # lvs -a -o name,copy_percent,devices my_vg
      LV               Copy%  Devices
      my_lv             60.00 my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]        /dev/sda1(1)
      [my_lv_rimage_1]        /dev/sdd1(1)
      [my_lv_rimage_2]        /dev/sde1(1)
      [my_lv_rmeta_0]         /dev/sda1(0)
      [my_lv_rmeta_1]         /dev/sdd1(0)
      [my_lv_rmeta_2]         /dev/sde1(0)
    Copy to Clipboard Toggle word wrap

67.7.20. 논리 볼륨에서 실패한 RAID 장치 교체

RAID는 기존 LVM 미러링과 동일하지 않습니다. LVM 미러링의 경우 실패한 장치를 제거합니다. 그렇지 않으면 RAID 배열이 실패한 장치에서 계속 실행되는 동안 미러링된 논리 볼륨이 중단됩니다. RAID1 이외의 RAID 수준의 경우 장치를 제거하면 RAID6에서 RAID5로 또는 RAID4 또는 RAID0으로의 낮은 RAID 수준으로의 변환을 의미합니다.

실패한 장치를 제거하고 교체를 LVM으로 할당하는 대신 lvconvert 명령의 --repair 인수를 사용하여 RAID 논리 볼륨에서 물리 볼륨으로 사용되는 실패한 장치를 교체할 수 있습니다.

사전 요구 사항

  • 볼륨 그룹에는 실패한 장치를 교체할 수 있는 충분한 여유 용량을 제공하는 물리 볼륨이 포함됩니다.

    볼륨 그룹에서 사용 가능한 확장 영역이 충분한 물리 볼륨이 없는 경우 Cryostatextend 유틸리티를 사용하여 충분히 큰 물리 볼륨을 추가합니다.

프로세스

  1. RAID 논리 볼륨을 확인합니다.

    # lvs --all --options name,copy_percent,devices my_vg
      LV               Cpy%Sync Devices
      my_lv            100.00   my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          /dev/sdc1(1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           /dev/sdc1(0)
      [my_lv_rmeta_2]           /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  2. /dev/sdc 장치가 실패한 후 RAID 논리 볼륨을 확인합니다.

    # lvs --all --options name,copy_percent,devices my_vg
      /dev/sdc: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices.
      LV               Cpy%Sync Devices
      my_lv            100.00   my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          [unknown](1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           [unknown](0)
      [my_lv_rmeta_2]           /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap
  3. 실패한 장치를 교체합니다.

    # lvconvert --repair my_vg/my_lv
      /dev/sdc: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rimage_1 while checking used and assumed devices.
      WARNING: Couldn't find all devices for LV my_vg/my_lv_rmeta_1 while checking used and assumed devices.
    Attempt to replace failed RAID images (requires full device resync)? [y/n]: y
    Faulty devices in my_vg/my_lv successfully replaced.
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 실패한 장치를 대체하는 물리 볼륨을 수동으로 지정합니다.

    # lvconvert --repair my_vg/my_lv replacement_pv
    Copy to Clipboard Toggle word wrap
  5. 교체를 사용하여 논리 볼륨을 검사합니다.

    # lvs --all --options name,copy_percent,devices my_vg
    
      /dev/sdc: open failed: No such device or address
      /dev/sdc1: open failed: No such device or address
      Couldn't find device with uuid A4kRl2-vIzA-uyCb-cci7-bOod-H5tX-IzH4Ee.
      LV               Cpy%Sync Devices
      my_lv            43.79    my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          /dev/sdb1(1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           /dev/sdb1(0)
      [my_lv_rmeta_2]           /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap

    볼륨 그룹에서 실패한 장치를 제거할 때까지 LVM 유틸리티에 실패한 장치를 찾을 수 없다는 내용이 계속 표시됩니다.

  6. 볼륨 그룹에서 실패한 장치를 제거합니다.

    # vgreduce --removemissing my_vg
    Copy to Clipboard Toggle word wrap

검증

  1. 실패한 장치를 제거한 후 사용 가능한 물리 볼륨을 확인합니다.

    # 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 Toggle word wrap
  2. 실패한 장치를 교체한 후 논리 볼륨을 검사합니다.

    # lvs --all --options name,copy_percent,devices my_vg
    my_lv_rimage_0(0),my_lv_rimage_1(0),my_lv_rimage_2(0)
      [my_lv_rimage_0]          /dev/sde1(1)
      [my_lv_rimage_1]          /dev/sdb1(1)
      [my_lv_rimage_2]          /dev/sdd1(1)
      [my_lv_rmeta_0]           /dev/sde1(0)
      [my_lv_rmeta_1]           /dev/sdb1(0)
      [my_lv_rmeta_2]           /dev/sdd1(0)
    Copy to Clipboard Toggle word wrap

67.7.21. RAID 논리 볼륨에서 데이터 일관성 확인

LVM은 RAID 논리 볼륨에 대한 스크럽을 제공합니다. RAID 스크러빙은 배열의 모든 데이터 및 패리티 블록을 읽고 일관성이 있는지 확인하는 프로세스입니다. lvchange --syncaction repair 명령은 배열에서 백그라운드 동기화 작업을 시작합니다.

프로세스

  1. 선택 사항: 다음 옵션 중 하나를 설정하여 RAID 논리 볼륨이 초기화되는 속도를 제어합니다.

    • --maxrecoveryrate Rate[bBsSkKmMgG] 는 RAID 논리 볼륨의 최대 복구 속도를 설정하여 nominal I/O 작업을 확장하지 않도록 합니다.
    • --minrecoveryrate Rate[bBsSkKmMgG] 는 RAID 논리 볼륨의 최소 복구 속도를 설정하여 동기화 작업의 I/O가 무분별 I/O가 있는 경우에도 최소 처리량을 달성하도록 합니다.

      # lvchange --maxrecoveryrate 4K my_vg/my_lv
      Logical volume _my_vg/my_lv_changed.
      Copy to Clipboard Toggle word wrap

      4K 를 복구 속도 값으로 바꿉니다. 이 값은 배열의 각 장치에 대한 초당 양입니다. 접미사를 제공하지 않으면 옵션은 장치당 초당 kiB를 가정합니다.

      # lvchange --syncaction repair my_vg/my_lv
      Copy to Clipboard Toggle word wrap

      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를 생성합니다.

  2. 배열의 불일치 수를 복구하지 않고 표시합니다.

    # lvchange --syncaction check my_vg/my_lv
    Copy to Clipboard Toggle word wrap

    이 명령은 배열에서 백그라운드 동기화 작업을 시작합니다.

  3. 선택 사항: 커널 메시지의 var/log/syslog 파일을 확인합니다.
  4. 배열의 불일치를 수정합니다.

    # lvchange --syncaction repair my_vg/my_lv
    Copy to Clipboard Toggle word wrap

    이 명령은 RAID 논리 볼륨에서 실패한 장치를 복구하거나 교체합니다. 이 명령을 실행한 후 커널 메시지의 var/log/syslog 파일을 볼 수 있습니다.

검증

  1. 스크럽 작업에 대한 정보를 표시합니다.

    # 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 Toggle word wrap

67.7.22. RAID1 논리 볼륨에서 I/O 작업

lvchange 명령의 --writemost 및 --write behind 매개변수를 사용하여 RAID1 논리 볼륨에서 장치의 I/O 작업을 제어할 수 있습니다. 다음은 이러한 매개변수를 사용하는 형식입니다.

--[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 레이아웃, 스트라이프 크기 및 스트라이프 수가 포함됩니다.

프로세스

  1. RAID 논리 볼륨을 생성합니다.

    # 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 Toggle word wrap
  2. RAID 논리 볼륨을 확인합니다.

    # lvs -a -o +devices
    
    LV               VG    Attr       LSize   Pool   Origin Data% Meta% Move Log Cpy%Sync Convert Devices
    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_0] my_vg iwi-aor--- 252.00m                                                      /dev/sda(1)
    [my_lv_rimage_1] my_vg iwi-aor--- 252.00m                                                      /dev/sdb(1)
    [my_lv_rimage_2] my_vg iwi-aor--- 252.00m                                                      /dev/sdc(1)
    [my_lv_rmeta_0]  my_vg ewi-aor---   4.00m                                                      /dev/sda(0)
    [my_lv_rmeta_1]  my_vg ewi-aor---   4.00m                                                      /dev/sdb(0)
    [my_lv_rmeta_2]  my_vg ewi-aor---   4.00m                                                      /dev/sdc(0)
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: RAID 논리 볼륨의 스트라이프 이미지 및 스트라이프 크기를 확인합니다.

    # lvs -o stripes my_vg/my_lv
      #Str
         3
    Copy to Clipboard Toggle word wrap
    # lvs -o stripesize my_vg/my_lv
      Stripe
      64.00k
    Copy to Clipboard Toggle word wrap
  4. 요구 사항에 따라 다음 방법을 사용하여 RAID 논리 볼륨의 속성을 수정합니다.

    1. RAID 논리 볼륨의 스트라이프 이미지를 수정합니다.

      # lvconvert --stripes 3 my_vg/my_lv
      Using default stripesize 64.00 KiB.
      WARNING: Adding stripes to active logical volume my_vg/my_lv will grow it from 126 to 189 extents!
      Run "lvresize -l126 my_vg/my_lv" to shrink it or use the additional capacity.
      Are you sure you want to add 1 images to raid5 LV my_vg/my_lv? [y/n]: y
      Logical volume my_vg/my_lv successfully converted.
      Copy to Clipboard Toggle word wrap
    2. RAID 논리 볼륨의 스트라이프 크기를 수정합니다.

      # 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 Toggle word wrap
    3. maxrecoveryrateminrecoveryrate 속성을 수정합니다.

      # lvchange --maxrecoveryrate 4M my_vg/my_lv
        Logical volume my_vg/my_lv changed.
      Copy to Clipboard Toggle word wrap
      # lvchange --minrecoveryrate 1M my_vg/my_lv
        Logical volume my_vg/my_lv changed.
      Copy to Clipboard Toggle word wrap
    4. syncaction 속성을 수정합니다.

      # lvchange --syncaction check my_vg/my_lv
      Copy to Clipboard Toggle word wrap
    5. writemostlywritebehind 속성을 수정합니다.

      # lvchange --writemostly /dev/sdb my_vg/my_lv
        Logical volume my_vg/my_lv changed.
      Copy to Clipboard Toggle word wrap
      # lvchange --writebehind 100 my_vg/my_lv
        Logical volume my_vg/my_lv changed.
      Copy to Clipboard Toggle word wrap

검증

  1. RAID 논리 볼륨의 스트라이프 이미지 및 스트라이프 크기를 확인합니다.

    # lvs -o stripes my_vg/my_lv
      #Str
         4
    Copy to Clipboard Toggle word wrap
    # lvs -o stripesize my_vg/my_lv
      Stripe
      128.00k
    Copy to Clipboard Toggle word wrap
  2. maxrecoveryrate 특성을 수정한 후 RAID 논리 볼륨을 확인합니다.

    # 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 Toggle word wrap
  3. minrecoveryrate 특성을 수정한 후 RAID 논리 볼륨을 확인합니다.

    # 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 Toggle word wrap
  4. syncaction 속성을 수정한 후 RAID 논리 볼륨을 확인합니다.

    # 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 Toggle word wrap

67.7.24. RAID 논리 볼륨에서 영역 크기 변경

RAID 논리 볼륨을 생성할 때 /etc/lvm/lvm.conf 파일의 raid_region_size 매개변수는 RAID 논리 볼륨의 리전 크기를 나타냅니다. RAID 논리 볼륨을 생성한 후 볼륨의 영역 크기를 변경할 수 있습니다. 이 매개 변수는 더티 상태 또는 정리 상태를 추적하는 세분성을 정의합니다. 비트맵의 더티 비트는 RAID 볼륨의 더티 종료 후 동기화할 작업 세트를 정의합니다(예: 시스템 오류).

raid_region_size 를 더 높은 값으로 설정하면 비트맵 크기와 혼잡이 줄어듭니다. 그러나 RAID에 대한 쓰기 는 영역을 동기화할 때까지 지연되기 때문에 영역을 재동기화하는 동안 쓰기 작업에 영향을 미칩니다.

프로세스

  1. RAID 논리 볼륨을 생성합니다.

    # lvcreate --type raid1 -m 1 -L 10G test
      Logical volume "lvol0" created.
    Copy to Clipboard Toggle word wrap
  2. RAID 논리 볼륨을 확인합니다.

    # lvs -a -o +devices,region_size
    
    LV                VG      Attr     LSize Pool Origin Data% Meta% Move Log   Cpy%Sync Convert Devices                              Region
    lvol0             test rwi-a-r--- 10.00g                                    100.00           lvol0_rimage_0(0),lvol0_rimage_1(0)  2.00m
    [lvol0_rimage_0]  test iwi-aor--- 10.00g                                                     /dev/sde1(1)                            0
    [lvol0_rimage_1]  test iwi-aor--- 10.00g                                                     /dev/sdf1(1)                            0
    [lvol0_rmeta_0]   test ewi-aor---  4.00m                                                     /dev/sde1(0)                            0
    [lvol0_rmeta_1]   test ewi-aor---  4.00m
    Copy to Clipboard Toggle word wrap

    Region 열은 raid_region_size 매개변수의 값을 나타냅니다.

  3. 선택 사항: raid_region_size 매개변수의 값을 확인합니다.

    # cat /etc/lvm/lvm.conf | grep raid_region_size
    
    # Configuration option activation/raid_region_size.
    	# raid_region_size = 2048
    Copy to Clipboard Toggle word wrap
  4. RAID 논리 볼륨의 영역 크기를 변경합니다.

    # 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 Toggle word wrap
  5. RAID 논리 볼륨을 다시 동기화합니다.

    # 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 Toggle word wrap

검증

  1. RAID 논리 볼륨을 확인합니다.

    # lvs -a -o +devices,region_size
    
    LV               VG   Attr        LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices                              Region
    lvol0            test rwi-a-r--- 10.00g                                    6.25           lvol0_rimage_0(0),lvol0_rimage_1(0)  4.00m
    [lvol0_rimage_0] test iwi-aor--- 10.00g                                                   /dev/sde1(1)                            0
    [lvol0_rimage_1] test iwi-aor--- 10.00g                                                   /dev/sdf1(1)                            0
    [lvol0_rmeta_0]  test ewi-aor---  4.00m                                                   /dev/sde1(0)                            0
    Copy to Clipboard Toggle word wrap

    Region 열은 raid_region_size 매개변수의 변경된 값을 나타냅니다.

  2. lvm.conf 파일에서 raid_region_size 매개변수의 값을 확인합니다.

    # cat /etc/lvm/lvm.conf | grep raid_region_size
    
    # Configuration option activation/raid_region_size.
    	# raid_region_size = 4096
    Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat