LVM RAID 5가 예상 논리 볼륨 크기에 도달하지 않습니다.

LVM RAID 5가 예상 논리 볼륨 크기에 도달하지 않습니다.

VG의 4개 드라이브 모두에서 공간을 사용하는 LV를 생성할 수 없는 LVM RAID 5 문제가 있습니다. 특히 짜증나는 점은 2년 전에 동일한 모델 드라이브를 사용하여 똑같은 VG/LV를 만들었고 이 문제가 발생한 기억이 없다는 것입니다.

RAID 5 LV를 생성하기 전의 pvs 및 vgs 출력은 다음과 같습니다.

pvs 출력:

PV         VG          Fmt  Attr PSize   PFree 
/dev/sda1  vg_sklad02  lvm2 a--    2.73t  2.73t
/dev/sdb1  vg_sklad01  lvm2 a--    2.73t     0 
/dev/sdc1  vg_sklad02  lvm2 a--    2.73t  2.73t
/dev/sdd1  vg_sklad01  lvm2 a--    2.73t     0 
/dev/sde1  vg_sklad01  lvm2 a--    2.73t     0 
/dev/sdf1  vg_sklad02  lvm2 a--    2.73t  2.73t
/dev/sdg1  vg_sklad02  lvm2 a--    2.73t  2.73t
/dev/sdh1  vg_sklad01  lvm2 a--    2.73t     0 
/dev/sdi2  vg_bootdisk lvm2 a--  118.75g 40.00m
/dev/sdj2  vg_bootdisk lvm2 a--  118.75g 40.00m

vgs의 출력:

VG          #PV #LV #SN Attr   VSize   VFree 
vg_bootdisk   2   2   0 wz--n- 237.50g 80.00m
vg_sklad01    4   1   0 wz--n-  10.92t     0 
vg_sklad02    4   0   0 wz--n-  10.92t 10.92t

동일한 모델 드라이브를 사용하여 동일한 시스템에서 LV를 생성하기 위해 지난번에 사용한 명령은 다음과 같습니다.

lvcreate --type raid5 -L 8.18T -n lv_sklad01 vg_sklad01

VG 및 LV 대상 이름을 변경하기 위해 동일한 명령을 실행하면 다음과 같은 결과가 나타납니다.

lvcreate --type raid5 -L 8.18T -n lv_sklad02 vg_sklad02

Using default stripesize 64.00 KiB.
Rounding up size to full physical extent 8.18 TiB
Insufficient free space: 3216510 extents needed, but only 2861584 available

2.73T 용량의 드라이브가 4개 있기 때문에 이것은 말이 되지 않습니다. 4 * 2.73 = 10.92. 패리티에서 1을 빼면 8.19T가 되는데, 이는 이 시스템의 원래 LV 크기입니다. 이기다. 내 거. 머리. 반대하다. 감시 장치. :?

빨대를 쥐고 ​​다음과 같은 시도도 했습니다.

[root@sklad ~]# lvcreate --type raid5 -l 100%VG -n lv_sklad02 vg_sklad02
  Using default stripesize 64.00 KiB.
  Logical volume "lv_sklad02" created.

결과적으로 LV 크기는 내가 예상한 것의 2/3가 되었습니다. lvs의 출력:

LV         VG          Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
lv_root    vg_bootdisk rwi-aor--- 102.70g                                    100.00          
lv_swap    vg_bootdisk rwi-aor---  16.00g                                  100.00          
lv_sklad01 vg_sklad01  rwi-aor---   8.19t                                    100.00          
lv_sklad02 vg_sklad02  rwi-a-r---   5.46t                                    0.18

위의 lvcreate 명령을 실행한 후 pvs, vgs 및 lvs에 대한 출력은 다음과 같습니다.

[root@sklad ~]# pvs
  PV         VG          Fmt  Attr PSize   PFree 
  /dev/sda1  vg_sklad02  lvm2 a--    2.73t     0 
  /dev/sdb1  vg_sklad01  lvm2 a--    2.73t     0 
  /dev/sdc1  vg_sklad02  lvm2 a--    2.73t     0 
  /dev/sdd1  vg_sklad01  lvm2 a--    2.73t     0 
  /dev/sde1  vg_sklad01  lvm2 a--    2.73t     0 
  /dev/sdf1  vg_sklad02  lvm2 a--    2.73t     0 
  /dev/sdg1  vg_sklad02  lvm2 a--    2.73t  2.73t
  /dev/sdh1  vg_sklad01  lvm2 a--    2.73t     0 
  /dev/sdi2  vg_bootdisk lvm2 a--  118.75g 40.00m
  /dev/sdj2  vg_bootdisk lvm2 a--  118.75g 40.00m

[root@sklad ~]# vgs
  VG          #PV #LV #SN Attr   VSize   VFree 
  vg_bootdisk   2   2   0 wz--n- 237.50g 80.00m
  vg_sklad01    4   1   0 wz--n-  10.92t     0 
  vg_sklad02    4   1   0 wz--n-  10.92t  2.73t

[root@sklad ~]# lvs
  LV         VG          Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root    vg_bootdisk rwi-aor--- 102.70g                                    100.00          
  lv_swap    vg_bootdisk rwi-aor---  16.00g                                    100.00          
  lv_sklad01 vg_sklad01  rwi-aor---   8.19t                                    100.00          
  lv_sklad02 vg_sklad02  rwi-a-r---   5.46t                                    2.31            

어떤 이유에서인지 vg_sklad02(제가 작업 중인 VG)에 할당되지 않은 공간이 있습니다. -l 100%VG는 VG에서 사용 가능한 모든 공간을 사용해야 하지 않습니까?

LV lv_sklad01과 lv_sklad02는 동일한 드라이브에서 생성되었기 때문에 크기가 동일해야 하며, 제가 기억하는 한 동일한 create 명령을 사용해 보았습니다.

내가 뭘 잘못하고 있는지에 대한 제안이 있는 사람이 있나요?

답변1

질문에서 말했듯이, 저는 이전에 이 작업을 수행한 적이 있으며 2년 전에 완료하기 위해 수행한 작업을 문서화했습니다. 어떤 이유로 동일한 lvcreate 명령이 작동하지 않습니다. 이 LV를 생성하려면 -i 3을 사용하여 스트라이프 수를 지정해야 합니다. 따라서 작업 명령은 다음과 같습니다.

lvcreate -i 3 --type raid5 -L 8.18T -n lv_sklad02 vg_sklad02

LVM 도구가 업데이트되면서 뭔가 변경된 것 같은데요?

고쳐 쓰다

그들은 LVM2를 변경했습니다. rpm -q --changelog lvm2에서

* Fri Jul 29 2016 Peter Rajnoha <[email protected]> - 7:2.02.162-1
<...>
- Add allocation/raid_stripe_all_devices to reinstate previous behaviour.
- Create raid stripes across fixed small numbers of PVs instead of all PVs.
<...>

내가 완전히 미친 게 아니라는 걸 알게 되어 다행이다. :-) 저는 RTFM이지만 올바른 FM은 아닌 것 같습니다. :-))

관련 정보