Linux LVM 簡單操作


查看當前磁盤分區情況
fdisk -l

磁盤分區
fdisk /dev/sdb
# 可能用到的Type :
# 8e Linux LVM
# fd Linux raid auto

創建PV
pvcreate /dev/sdb1 /dev/sdb2

確認PV
pvdisplay
pvdisplay /dev/sdb1
pvdisplay /dev/sdb2

刪除PV
pvremove /dev/sdb1 /dev/sdb2

創建VG
vgcreate myVG /dev/sdb1 /dev/sdb2
or
vgcreate myVG /dev/sdb1; vgextend myVG /dev/sdb2

確認VG
vgdisplay
vgscan # vgscan scans all SCSI(sd[a-t]), (E)IDE disks([hd[a-t]]), multiple devices(raid) and a bunch of other disk devices in the system looking for LVM physical volumes and volume groups.

重命名VG
vgrename myVG myNewVG

刪除VG
vgremove myVG

創建LV
lvcreate -L 400 -n vol01 myVG; lvcreate --name vol01 --size 400M myVG
lvcreate -L 1000 -n vol02 myVG
# -L size, 400M, 1000M
# -n lv's name

確認LV
lvdisplay
lvscan

重命名LV
lvrename myVG vol01 vol01_new; lvrename /dev/myVG/vol01 myVG/vol01_new

刪除LV
lvremove

創建Filesystem
mkfs.ext3 /dev/myVG/vol01
mkfs.ext3 /dev/myVG/vol02
mkfs.xfs /dev/myVG/vol03
mkfs.reiserfs /dev/myVG/vol04

掛載Mount Filesystem
mkdir -p /data1 /data2
mount /dev/myVG/vol01 /data1
mount /dev/myVG/vol02 /data2

卸載FS
umount /data1

確認
df -h

編輯寫入/etc/fstab
# file system|mount point|type|options|dump|pass
/dev/myVG/vol01 /data1 ext3 rw,noatime 0 0
/dev/myVG/vol02 /data2 ext3 rw,noatime 0 0


-------擴展文件系統---------------
先卸載
umount /data1

擴展LV
lvextend -L +800 /dev/myVG/vol01 # -L size+ 800M
lvextend -L 1.5G /dev/myVG/vol01 # -L size= 1.5G

檢查
e2fsck -f /dev/myVG/vol01
# -f Force checking even if the file system seems clean.

重置FS大小(對於fs,擴張此時才實際生效)
resize2fs /dev/myVG/vol01 # ext3
resize_reiserfs /dev/fileserver/media # reiserfs
xfs_growfs /dev/fileserver/backup # xfs
meta-data=/dev/fileserver/backup isize=256 agcount=8, agsize=163840 blks
= sectsz=512 attr=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=1
naming =version 2 bsize=4096
log =internal bsize=4096 blocks=2560, version=1
= sectsz=512 sunit=0 blks
realtime =none extsz=65536 blocks=0, rtextents=0

裝載
mount /data1
------縮減文件系統----------------
現在卸載
umount /data1

檢查
e2fsck -f /dev/myVG/vol01

縮減fs
resize2fs /dev/myVG/vol01 2G

刪除LV
lvreduce -L 1G dev/myVG/vol01 # -L size= 1G
--添加新的PV到已知VG中----------------------------------
創建partition
fdisk /dev/sdf # type 8e Linux LVM

創建PV
pvcreate /dev/sdf1

添加
vgextend myVG /dev/sdf1

確認
vgdisplay
--刪除PV從VG中----------------------------------
先將數據轉移
pvmove /dev/sdb_old /dev/sdf_new

再從vg中刪除old pv
vgreduce myVG /dev/sdb_old

確認vg中無old pv
vgdisplay

刪除old pv
pvremove /dev/sdb_old

確認
pvdisplay
-----清除所有操作--------------------------------------
umount /data1

lvremove /dev/myVG/vol01

vgremove myVG

pvremove /dev/sdb1 /dev/sdb2

restore /etc/fstab manually

shutdown -r now

確認
vgdisplay
pvdisplay
lvdisplay
df -h


===========LVM On RAID1===========
LV |/dev/myVG/share | /dev/myVG/backup   | /dev/myVG/unused
---|-------------------|----------------------|------------------------
VG |                                  myVG
---|----------------------------------------------------------------
PV |        /dev/md0                     |                   /dev/md1
    |----------------------------------------------------------------
    |/dev/sdb1     |     /dev/sdc1    |       /dev/sdd1     |    /dev/sde1
---|----------------------------------------------------------------

構建初始狀態
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
vgcreate myVG /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
lvcreate --name share --size 40G myVG
lvcreate --name backup --size 5G myVG
lvcreate --name media --size 1G myVG

mkfs.ext3 /dev/myVG/share
mkfs.xfs /dev/myVG/backup
mkfs.reiserfs /dev/myVG/media

mount /dev/myVG/share /var/share
mount /dev/myVG/backup /var/backup
mount /dev/myVG/media /var/media

df -h

開始構築

清除sdc1 sde1
modprobe dm-mirror
pvmove /dev/sdc1
pvmove /dev/sde1

vgreduce myVG /dev/sdc1
vgreduce myVG /dev/sde1

pvremove /dev/sdc1
pvremove /dev/sde1


重新設定partition為raid
fdisk /dev/sdc # type fd Linux raid auto
fdisk /dev/sde # type fd Linux raid auto

創建raid
# add /dev/sdc1 to /dev/md0 and /dev/sde1 to /dev/md1.
# Because the second nodes (/dev/sdb1 and /dev/sdd1) are not ready yet, we must specify missing in the following commands:
mdadm --create /dev/md0 --auto=yes -l 1 -n 2 /dev/sdc1 missing
# -l level
# -n Specify the number of active devices in the array.

mdadm --create /dev/md1 --auto=yes -l 1 -n 2 /dev/sde1 missing

創建raid PV
pvcreate /dev/md0 /dev/md1

將新的raid PV加入到VG
vgextend myVG /dev/md0 /dev/md1

確認
pvdisplay
# PV Name /dev/sdb1
# PV Name /dev/sdd1
# PV Name /dev/md0
# PV Name /dev/md1

遷移數據
pvmove /dev/sdb1 /dev/md0
pvmove /dev/sdd1 /dev/md1

移除/dev/sdb1 /dev/sdd1從vg中,並刪除
vgreduce myVG /dev/sdb1 /dev/sdd1
pvremove /dev/sdb1 /dev/sdd1

確認
pvdisplay
# PV Name /dev/md0
# PV Name /dev/md1

設置dev/sdb和dev/sdd為raid type
fdisk /dev/sdb # type fd Linux raid auto
fdisk /dev/sdd # type fd Linux raid auto

# add /dev/sdb1 to /dev/md0 and /dev/sdd1 to /dev/md1:
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdd1

檢查同步進度,直到100%
cat /proc/mdstat

=========Replacing The Hard Disks With Bigger Ones=====
# The procedure is as follows:
# first we remove /dev/sdb and /dev/sdd from the RAID arrays, replace them with bigger hard disks,
# put them back into the RAID arrays, and then we do the same again with /dev/sdc and /dev/sde.

# First we mark /dev/sdb1 as failed:
mdadm --manage /dev/md0 --fail /dev/sdb1

確認
cat /proc/mdstat

移除
mdadm --manage /dev/md0 --remove /dev/sdb1

確認
cat /proc/mdstat

對/dev/sdd1做同樣的操作
mdadm --manage /dev/md1 --fail /dev/sdd1
cat /proc/mdstat
mdadm --manage /dev/md1 --remove /dev/sdd1
cat /proc/mdstat

# now shut it down, pull out the 25GB /dev/sdb and /dev/sdd and replace them with 80GB ones.
格式化新的sdb sdd
fdisk /dev/sdb # type fd Linux raid auto
fdisk /dev/sdd # type fd Linux raid auto

添加新的pv到raid vg中
mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdd1

檢查同步進度,直到100
cat /proc/mdstat


# Now we do the same process again, this time replacing /dev/sdc and/dev/sde:

mdadm --manage /dev/md0 --fail /dev/sdc1
mdadm --manage /dev/md0 --remove /dev/sdc1
mdadm --manage /dev/md1 --fail /dev/sde1
mdadm --manage /dev/md1 --remove /dev/sde1

插入新的 sdc sde
fdisk /dev/sdc # type fd Linux raid auto
fdisk /dev/sde # type fd Linux raid auto

mdadm --manage /dev/md0 --add /dev/sdc1
mdadm --manage /dev/md1 --add /dev/sde1

# Wait until the synchronization has finished.
cat /proc/mdstat

=====如果事先准備好pv,直接構建raid VG時如下步驟=============================
mdadm --create /dev/md2 --auto=yes -l 1 -n 2 /dev/sdb2 /dev/sdc2
mdadm --create /dev/md3 --auto=yes -l 1 -n 2 /dev/sdd2 /dev/sde2
cat /proc/mdstat # Wait until the synchronization has finished.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM