Tag Archives: lvm

LVM 筆記

這幾天因為有會在資料在 Partition 移來移去, 分割, 整合的需求,
所以就選用用 LVM 做我的 File System

結果比較白爛的事情是, Reiser4 的 resize tool 沒有寫好, 所以我只能先搬到另一
顆 DISK ,將原來的 File System 改成 Reiser3 再搬回來. 又多花了半天.

增大 Partition 到是沒有花很多時間. 就 fdisk 直接切 size 之後
直接用 resize_reiserfs 去修就可以了

懶得打指令集了, 指令如下

624 pvcreate /dev/hde
625 pvdisplay
626 vgdisplay
627 vgextend data /dev/hde
628 lvdisplay
629 vgdisplay
634 lvextend -L457G /dev/data/data_lv
635 lvdisplay
636 vgdisplay
637 fdisk /dev/data/data_lv
643 resize_reiserfs /dev/data/data_lv

相關指令在我的 wikiLVM 指令說明

Update: pvcreate 建 device 時,需要移除所有的 partition 或是沒有任何資料

2021/05/08

沒想到今天又回頭用 LVM 了,因為最近有動態增加硬碟的需求,大部份和前面一樣,這邊就筆記一下過程,後面可以查閱

Create VG

新增一個叫 data 的 VG ,並且加入 /dev/sdc and /dev/sdd (時隔十六年,hdx 都變 sdx 了)

$ vgcreate data /dev/sdc /dev/sdd
$ vgdisplay
 --- Volume group ---
  VG Name               data
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <3.64 TiB
  PE Size               4.00 MiB
  Total PE              953864
  Alloc PE / Size       0 / 0
  Free  PE / Size       953864 / <3.64 TiB
  VG UUID               Y3Zkxe-4hPi-Y7eN-W4c9-Y1GJ-t8pB-qCjqrx

Create LV

我們總共有 3.64T 的資料,這邊就建立到最大 3.6T 的 LV

$ lvcreate --name data_ext --size 3.6T data
Rounding up size to full physical extent 3.60 TiB
  Logical volume "data_ext" created.
$ lvdisplay
--- Logical volume ---
  LV Path                /dev/data/data_ext
  LV Name                data_ext
  VG Name                data
  LV UUID                s6dS7a-Ah2s-f3og-1WOm-4fLE-jd1C-bAGX3l
  LV Write Access        read/write
  LV Creation host, time RL-T1, 2021-05-08 14:27:27 +0800
  LV Status              available
  # open                 0
  LV Size                3.60 TiB
  Current LE             943719
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

接下來就可以用 mkfs.ext4 /dev/data/data_ext 當成一個實體硬碟來用

增加一顆硬碟到 VG 內

如果這時候要新增一顆硬碟,可以再利用 pvcreate 之後再用 vgextend 將其納入 vg 內
$ pvcreate /dev/sda
  Device /dev/sda excluded by a filter.
如果出現了錯誤訊息,原因是因為之前可能有 boot disk 之類的 label ,這時用 parted 的 mklabel 指令將 partition 改成 msdos 之後,再執行一次就可以了

$ vgextend data /dev/sda
  Volume group "data" successfully extended
$ vgdisplay
--- Volume group ---
  VG Name               data
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <5.46 TiB
  PE Size               4.00 MiB
  Total PE              1430796
  Alloc PE / Size       943719 / 3.60 TiB
  Free  PE / Size       487077 / <1.86 TiB
  VG UUID               Y3Zkxe-4hPi-Y7eN-W4c9-Y1GJ-t8pB-qCjqrx

這邊可以看到總容量是 5.46T ,僅使用 3.60T 也就是之前規劃的,接下來擴大容量

$ lvextend -L5.4T /dev/data/data_ext
  Rounding size to boundary between physical extents: 5.40 TiB.
  Size of logical volume data/data_ext changed from 3.60 TiB (943719 extents) to 5.40 TiB (1415578 extents).
  Logical volume data/data_ext successfully resized.

接下來再用 resize2fs /dev/data_ext 就可以了,ext4 可以線上 extend,只是速度慢一點而已

$ resize2fs /dev/data/data_ext
 resize2fs 1.45.5 (07-Jan-2020)
 Filesystem at /dev/data/data_ext is mounted on /home/chia/nfs; on-line resizing required
 old_desc_blocks = 461, new_desc_blocks = 692
 The filesystem on /dev/data/data_ext is now 1449551872 (4k) blocks long.