lvm 筆記
下列為 kickstart 的範例
# System bootloader configuration
bootloader –append=” crashkernel=auto” –location=mbr –boot-drive=sda
# Partition clearing information
clearpart –all –initlabel –drives=sda
part /boot –fstype ext4 –size=1024
part pv.01 –size=1000 –grow –ondisk=sda
volgroup vg00 pv.01
logvol / –vgname=vg00 –fstype=xfs –size=40960 –name=lv_root
logvol swap –vgname=vg00 –fstype=swap –size=32768 –name=lv_swap
logvol /data –vgname=vg00 –fstype=xfs –size=10000 –name=lv_data –grow或是要用 parted 指令也可以
# parted -s /dev/sdb mklabel gpt
# parted -s /dev/sdb mkpart primary 0 100%
# parted -s /dev/sdb set 1 lvm on
# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
# vgcreate centos /dev/sdb1
  Volume group "centos" successfully created
下面為 lvm 的基本指令
用 vgs 指令列出 volume 群組資訊
# vgs
   VG   #PV #LV #SN Attr   VSize    VFree
   centos   1   2   0 wz--n- <271.25g <187.25g用 pvs 指令列出實體 volumes 的資訊
# pvs
   PV         VG   Fmt  Attr PSize    PFree
   /dev/sda2  centos lvm2 a--  <271.25g <187.25g用 lvs 指令 列出邏輯 volumes 的資訊
# lvs
   LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
   home centos -wi-a----- <217.25g
   root centos -wi-ao---- 50.00g
   swap centos -wi-ao----  4.00g要變更 volume 群組名稱用 vgrename 指令
# vgrename centos computenode1
Volume group "centos" successfully renamed to "computenode1"要變更 lvm volume 名稱用下列指令
# lvrename computenode1 home data
Renamed "home" to "data" in volume group "computenode1"
## 用 lvs 檢查一下結果
# lvs
LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
   data computenode1 -wi-a----- <217.25g
   root computenode1 -wi-ao---- 50.00g
   swap computenode1 -wi-ao----  4.00g改完之後記得去編輯一下 /etc/grub2.cfg 要不然無法開機
# vi /etc/grub2.cfg
linux16 /vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/computenode1-root ro crashkernel=auto rd.lvm.lv=computenode1/root rd.lvm.lv=computenode1/swap rhgb quiet LANG=en_US.UTF-8還有要建立 /data 掛載目錄及編輯 /etc/fstab
#mkdir /data
# vi /etc/fstab
/dev/mapper/computenode1-root / xfs defaults 0 0
UUID=8d6dec77-95e2-4cde-8e4b-35742cd6623b /boot xfs defaults 0 0
/dev/mapper/computenode1-data /data xfs defaults 0 0
/dev/mapper/computenode1-swap swap swap defaults 0 0調整 lvm 大小範例:想要增加 / root 空間,為了方便調整 / root volume 的大小,所以先簡單的把 data volume 清除掉。當然可以先降低 data volume 之後再來調整 / root 大小,但就覺得麻煩。所先移除 data 邏輯 volume 。
# lvremove /dev/computenode1/data
Do you really want to remove active logical volume computenode1/data? [y/n]: y
  Logical volume "data" successfully removed再來增加 / root 空間,從 50GB 到 80GB。
# lvextend -L80G /dev/computenode1/root
# lvs
   LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
   root computenode1 -wi-ao---- 80.00g
   swap computenode1 -wi-ao----  4.00g因為檔案系統是 xfs 所以要用 xfs_growfs 調整,如果是 ext4 or ext3 就要用 resize2fs 指令
# xfs_growfs /dev/mapper/computenode1-root
meta-data=/dev/mapper/computenode1-root  isize=512    agcount=4, agsize=3276800 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=0 spinodes=0
 data     =                       bsize=4096   blocks=13107200, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 log      =internal               bsize=4096   blocks=6400, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0
 data blocks changed from 13107200 to 20971520再把所有剩餘的空間,建立給 data volume,順便格式化。
# lvcreate -n data -l 100%FREE computenode1
   Logical volume "data" created.
# mkfs.xfs /dev/mapper/computenode1-data
 meta-data=/dev/mapper/computenode1-data  isize=512    agcount=4, agsize=12271360 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=0, sparse=0
 data     =                       bsize=4096   blocks=49085440, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 log      =internal log           bsize=4096   blocks=23967, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0這樣就可以掛載 /data 也把 / root 從 50GB 調整為 80GB
# df -h
 Filesystem             Size  Used Avail Use% Mounted on
 /dev/mapper/computenode1-root   80G  5.2G   75G   7% /
 devtmpfs                48G     0   48G   0% /dev
 tmpfs                   48G     0   48G   0% /dev/shm
 tmpfs                   48G  9.5M   48G   1% /run
 tmpfs                   48G     0   48G   0% /sys/fs/cgroup
 /dev/sda1             1014M  218M  797M  22% /boot
 tmpfs                  9.5G     0  9.5G   0% /run/user/0
 /dev/mapper/computenode1-data  188G   33M  188G   1% /data如果要把 swap 關閉並移除,可以用下列指令:
# swapoff -v /dev/mapper/computenode1-swap
swapoff /dev/mapper/computenode1-swap
# lvremove /dev/mapper/computenode1-swap
Do you really want to remove active logical volume computenode1/swap? [y/n]: y
  Logical volume "swap" successfully removed然後關閉虛擬機器把虛擬機器的 80GB 調整為 120GB,如果現有 partition 太小需要調整 分割區大小:
# parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 129GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start   End     Size    Type     File system  Flags
 1      1049kB  525MB   524MB   primary  xfs          boot
 2      525MB   85.9GB  85.4GB  primary               lvm
(parted) resizepart 2 113GiB
(parted) p
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 129GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number  Start   End    Size   Type     File system  Flags
 1      1049kB  525MB  524MB  primary  xfs          boot
 2      525MB   121GB  121GB  primary               lvm
(parted) quit
Information: You may need to update /etc/fstab.調整完後也記得把 lvm 的 sda2 分割區調整大小
# pvresize /dev/sda2 Physical volume "/dev/sda2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized然後把剛剛刪除的 swap 建立回去:
# lvm lvcreate computenode1 -n swap -L 8G
  Logical volume "swap" created.然後格式化 swap 磁區
# mkswap /dev/computenode1/swap
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=5f64de0a-bc9e-475f-a70f-7628704697a1在 /etc/fstab 確認是否有把 swap 描述寫入
# cat /etc/fstab | grep swap
/dev/mapper/computenode1-swap swap                    swap    defaults        0 0然後啟用 swap
# swapon -va
swapon /dev/mapper/computenode1-swap
swapon: /dev/mapper/computenode1-swap: found swap signature: version 1, page-size 4, same byte order
swapon: /dev/mapper/computenode1-swap: pagesize=4096, swapsize=8589934592, devsize=8589934592然後再次調整 root partition
# lvextend -L104G /dev/computenode1/root
# lvs
  LV    VG          Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root  computenode1 -wi-ao----  104.00g
  swap  computenode1 -wi-ao----    8.00g用 xfs_growfs 調整 root partition
# xfs_growfs /dev/mapper/computenode1-root
meta-data=/dev/mapper/computenode1 isize=256    agcount=7, agsize=3151616 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=20709376, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=6155, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 20709376 to 27262976檢查是否調整成功
# df -h /
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/computenode1-root  104G  5.0G  100G   5% /