RAID10의 LVM 가상 풀 + RAID1의 메타데이터

RAID10의 LVM 가상 풀 + RAID1의 메타데이터

SSD 2개와 HDD 4개 및 해당 PV( /dev/ssd1, /dev/ssd2, /dev/hdd1~ /dev/hdd4)가 주어졌습니다.

알아요. 식별자가 정확하지 않습니다. 이는 단지 제가 말하는 장치를 더 쉽게 추적할 수 있도록 하기 위한 것입니다.

내가 원하는 건

  • 모든 하드 드라이브는 RAID10 어레이를 형성합니다.
  • 이 RAID10에는 LVM 가상 풀이 있습니다.
  • 모든 SSD는 RAID1 어레이를 형성합니다.
  • 가상 풀의 메타데이터가 이 RAID1에 상주하도록 만듭니다.

내가 뭘 한거지

  1. 모든 물리적 PV를 포함하는 VG 생성
    vgcreate appdata /dev/sdd1 /dev/sdd2 /dev/hdd1 /dev/hdd2 /dev/hdd3 /dev/hdd4
    
  2. 2개의 LV를 생성합니다. 하나는 메타데이터용이고 다른 하나는 데이터용입니다.
    lvcreate --type raid1 -m 1 -n ThinMetaAD -L 15G appdata /dev/ssd1 /dev/ssd2
    lvcreate --type raid10 -n ThinAD -L 465G appdata /dev/hdd1 /dev/hdd2 /dev/hdd3 /dev/hdd4
    
  3. 변환 기반LV 씬 매뉴얼
    lvconvert --type thin-pool --poolmetadata appdata/ThinMetaAD appdata/ThinAD
    

내가 얻은 것

$ lsblk

NAME                              MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
ssd                                 8:0    0 223.6G  0 disk
└─ssd1                              8:1    0    16G  0 part
  ├─appdata-ThinAD_tmeta_rmeta_0  252:2    0     4M  0 lvm
  │ └─appdata-ThinAD_tmeta        252:6    0    15G  0 lvm
  │   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tmeta_rimage_0 252:3    0    15G  0 lvm
    └─appdata-ThinAD_tmeta        252:6    0    15G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm
hdd                                 8:16   0 465.8G  0 disk
└─hdd1                              8:17   0 465.8G  0 part
  ├─appdata-ThinAD_tdata_rmeta_0  252:7    0     4M  0 lvm
  │ └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
  │   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tdata_rimage_0 252:8    0   232G  0 lvm
    └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm
hdd                                 8:32   0 465.8G  0 disk
└─hdd2                              8:33   0 465.8G  0 part
  ├─appdata-ThinAD_tdata_rmeta_1  252:9    0     4M  0 lvm
  │ └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
  │   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tdata_rimage_1 252:10   0   232G  0 lvm
    └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm
hdd                                 8:48   0 465.8G  0 disk
└─hdd3                              8:49   0 465.8G  0 part
  ├─appdata-ThinAD_tdata_rmeta_2  252:11   0     4M  0 lvm
  │ └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
  │   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tdata_rimage_2 252:12   0   232G  0 lvm
    └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm
hdd                                 8:64   0 931.5G  0 disk
└─hdd4                              8:65   0   466G  0 part
  ├─appdata-ThinAD_tdata_rmeta_3  252:13   0     4M  0 lvm
  │ └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
  │   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tdata_rimage_3 252:14   0   232G  0 lvm
    └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm
ssd                           
└─ssd2                       259:5    0    16G  0 part
  ├─appdata-ThinAD_tmeta_rmeta_1  252:4    0     4M  0 lvm
  │ └─appdata-ThinAD_tmeta        252:6    0    15G  0 lvm
  │   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tmeta_rimage_1 252:5    0    15G  0 lvm
    └─appdata-ThinAD_tmeta        252:6    0    15G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm

질문

위의 설정이 제가 원래 원했던 의미에서 올바른지 궁금합니다. 특히 partition아래와 같이 아래의 3개 레벨이 걱정됩니다.

hdd                                 8:32   0 465.8G  0 disk
└─hdd2                              8:33   0 465.8G  0 part
>>├─appdata-ThinAD_tdata_rmeta_1  252:9    0     4M  0 lvm
>>│ └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
>>│   └─appdata-ThinAD            252:16   0   464G  0 lvm
  └─appdata-ThinAD_tdata_rimage_1 252:10   0   232G  0 lvm
    └─appdata-ThinAD_tdata        252:15   0   464G  0 lvm
      └─appdata-ThinAD            252:16   0   464G  0 lvm
  1. 내 설정이 정확합니까?
  2. 그렇지 않은 경우 원하는 결과를 얻으려면 어떤 단계를 수행해야 합니까?내가 원하는 건?

답변1

lsblk일반적인 장치 종속성으로 인해 이런 방식으로 표시됩니다. 복잡한 설정의 경우 이는 물리적 스토리지와 직접적인 관련이 없을 수 있으므로 "잘못된" 것처럼 보입니다.

아마도 LVM 도구는 더 명확한 그림을 제공할 수 있습니다.

# lvs --all --segments --options +seg_le_ranges appdata
  LV                      VG      Attr       #Str Type      SSize  LE Ranges                       
  ThinAD                  appdata twi-a-tz--    1 thin-pool  9.00g [ThinAD_tdata]:0-2303           
  [ThinAD_tdata]          appdata rwi-aor---    2 raid1      9.00g [ThinAD_tdata_rimage_0]:0-2303,[ThinAD_tdata_rimage_1]:0-2303
  [ThinAD_tdata_rimage_0] appdata iwi-aor---    1 linear     9.00g /dev/loop2001:1-2304            
  [ThinAD_tdata_rimage_1] appdata iwi-aor---    1 linear     9.00g /dev/loop2002:1-2304            
  [ThinAD_tdata_rmeta_0]  appdata ewi-aor---    1 linear     4.00m /dev/loop2001:0-0               
  [ThinAD_tdata_rmeta_1]  appdata ewi-aor---    1 linear     4.00m /dev/loop2002:0-0               
  [ThinAD_tmeta]          appdata ewi-aor---    2 raid1     92.00m [ThinAD_tmeta_rimage_0]:0-22,[ThinAD_tmeta_rimage_1]:0-22
  [ThinAD_tmeta_rimage_0] appdata iwi-aor---    1 linear    92.00m /dev/loop1001:1-23              
  [ThinAD_tmeta_rimage_1] appdata iwi-aor---    1 linear    92.00m /dev/loop1002:1-23              
  [ThinAD_tmeta_rmeta_0]  appdata ewi-aor---    1 linear     4.00m /dev/loop1001:0-0               
  [ThinAD_tmeta_rmeta_1]  appdata ewi-aor---    1 linear     4.00m /dev/loop1002:0-0               
  [lvol0_pmspare]         appdata ewi-------    1 linear    92.00m /dev/loop2001:2305-2327         

루프 장치, /dev/loop100x메타데이터 및 데이터를 사용하여 /dev/loop200x대략적인 설정을 시도했습니다. 출력에는 다른 장치 및 크기가 나열되어야 합니다.

모든 tmeta 콘텐츠는 /dev/loop1xxx에 있고 모든 tdata 콘텐츠는 /dev/loop2xxx에 있으므로 예상대로 작동할 것입니다.

pmspare(풀 메타데이터 예비) 볼륨은 예외입니다. 이에 대해서는 lvmthin 맨페이지에 설명되어 있습니다.

관련 정보