一、LVM的基本組成
- 物理卷 (PV,Physical Volume)
一個可供存儲LVM的塊設備. 如硬盤分區(MBR或GPT分區)、SAN 的硬盤、RAID 或 LUN,一個迴環文件, 一個被內核映射的設備 (例如 dm-crypt),它包含一個特殊的LVM頭,它是 LVM 構建的實際硬件或存儲系統。
- 卷組 (VG,Volume Group)
卷組是對一個或多個物理卷的集合,並在設備文件系統中顯示爲 /dev/VG_NAME。
- 邏輯卷 (LV,Logical Volume)
邏輯卷是可供系統使用的最終元設備,它們在卷組中創建和管理,由物理塊組成,實際上就是一個虛擬分區,並顯示爲 /dev/VG_NAME/LV_NAME,通常在其上可以創建文件系統。
- 物理塊 (PE,Physical Extends)
一個卷組中最小的連續區域(默認爲4 MiB),多個物理塊將被分配給一個邏輯卷。你可以把它看成物理卷的一部分,這部分可以被分配給一個邏輯卷。
下面我畫了一張lvm在linux磁盤管理中的位置圖:
依次爲:disk -> partition -> PV -> VG -> LV -> fs,也即磁盤->分區->物理卷->卷組->邏輯卷->文件系統。
LVM的管理命令:
主要命令:
pvcreate命令:創建新的物理卷(格式:pvcreate...設備名1...[設備名2])
vgcreate命令:創建新的卷組(格式:vgcreate...卷組名...物理卷名1...物理卷名2)
lvcreate命令:創建新的邏輯卷(格式:lvcreate...-L...容量大小...-n...邏輯卷名...卷組名)
lvextend命令:添加邏輯卷的存儲空間(格式:lvextend...-L...+容量大小.../dev/卷組名/邏輯卷名)
實操案例一
- 查看磁盤信息:輸入# fdisk -l
- 對磁盤sdb進行配置,輸入fdisk /dev/vdb
將所有空間全部分配到一個主分區,然後轉換分區格式爲LVM格式。
輸入:fdisk /dev/sdb----------管理磁盤sdb
輸入:n---------------------------新建分區
輸入:p--------------------------選擇分區類型爲主分區
回車-------------------------------默認設置分區號爲1
回車-------------------------------默認設置起始扇區
回車------------------------------默認分配全部空間給分區1
輸入:t--------------------------轉換分區格式
輸入:8e-----------------------LVM格式的代碼(不知道的可以輸入L查詢)
依次輸入n、p、默認、默認、默認、t(選擇8e)、p、w
- 重讀分區表:partprobe
1、創建PV
輸入pvcreate /dev/vdb1,選擇yes
2、創建VG
輸入vgcreate vgData /dev/vdb1 (根據自己的需求創建名字vg+名字)
3、創建LV
輸入lvcreate -l 100%FREE -n lvmData vgData (根據自己的需求創建名字lvm+名字)
4、使用邏輯卷
- 創建掛載目錄:輸入mkdir /data,創建data文件 (根據自己的需求創建名字lvm+名字)
- 格式化邏輯卷:輸入mkfs.xfs /dev/vgData/lvmData
- 永久掛載邏輯卷:配置下次啓動時自動掛載。輸入vim /etc/fstab
添加:
“/dev/vgData/lvmData /data xfs defaults 0 0”,
解釋: /dev/vgData/lvmData
/data是掛載此分區的目錄
xfs是磁盤格式,後面照抄上面一個行的信息
- 輸完後按ESC,輸入:wq保存退出
輸入mount -a
(經測試卡住不動實際手動掛載命令:mount /dev/vgData/lvmData /data)
(經測試寫入/etc/fstab後是可以開機自動掛載的)
輸入df -h,查詢磁盤是否掛載成功。
LVM擴容磁盤(加一塊新盤)
- 查看磁盤信息:輸入# fdisk -l
- 對磁盤sdc進行配置,輸入fdisk /dev/vdc
將所有空間全部分配到一個主分區,然後轉換分區格式爲LVM格式。
輸入:fdisk /dev/sdc----------管理磁盤sdc
輸入:n---------------------------新建分區
輸入:p--------------------------選擇分區類型爲主分區
回車-------------------------------默認設置分區號爲1
回車-------------------------------默認設置起始扇區
回車------------------------------默認分配全部空間給分區1
輸入:t--------------------------轉換分區格式
輸入:8e-----------------------LVM格式的代碼(不知道的可以輸入L查詢)
依次輸入n、p、默認、默認、默認、t(選擇8e)、p、w
- 重讀分區表:輸入# partprobe
1、 創建PV
輸入pvcreate /dev/vdc1,選擇yes
2、擴容VG
vgextend vgData /dev/vdc1
#查看VG可用空間
檢查可用空間vgdisplay
將空間加到vgData中
lvextend -l +100%FREE /dev/mapper/vgData-lvmData
刷新文件系統使擴容生效
xfs_growfs /dev/mapper/vgData-lvmData
檢查是否成功
df -h
實操案例二
第一步:建立物理卷(PV)。
1.給主機添加三塊20G的硬盤,然後重啓Linux系統(重啓系統才能識別到硬盤,用“reboot”或“init6”命令重啓)。
2.用fdisk命令,檢查硬盤是否添加成功。輸入:fdisk -l
3.對磁盤sdb進行配置,將所有空間全部分配到一個主分區,然後轉換分區格式爲LVM格式。
輸入:fdisk /dev/sdb----------管理磁盤sdb
輸入:n---------------------------新建分區
輸入:p--------------------------選擇分區類型爲主分區
回車-------------------------------默認設置分區號爲1
回車-------------------------------默認設置起始扇區
回車------------------------------默認分配全部空間給分區1
輸入:t--------------------------轉換分區格式
輸入:8e-----------------------LVM格式的代碼(不知道的可以輸入L查詢)
4.用上面的方法,對磁盤sdc、sdd進行於磁盤sdb相同的配置,並保存退出磁盤配置面板。
5.再次用fdisk命令,檢查磁盤分區是否配置成功。輸入:fdisk -l
6.用pvcreate命令將三個磁盤分區創建爲三個物理卷。(我用的是正則表達式輸入,更簡便,跟輸入“pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1”命令行結果是相同的)輸入:pvcreate /dev/sd{b..d}1
第二步:新建卷組(VG)。
1.將物理卷sdb1、sdc1、sdd1加入到卷組mailbox內。
輸入:vgcreate mailbox /dev/sd{b..d}1---------新建卷組mailbox並將物理卷sdb1、sdc1、sdd1添加進去
輸入:pvscan-------------------------------------------查看物理卷信息
2.查看一下卷組mailbox的詳細信息。
輸入:vgdisplay----------顯示卷組詳細信息
第三步:新建邏輯卷(LV)
1.給mailbox卷組新建一個邏輯卷mbox01。(我一塊磁盤的大小是20G,25G的邏輯卷很明顯可以跨磁盤建立)
輸入:lvcreate -L 25G -n mbox01 mailbox----------給mailbox卷組新建一個名爲mbox01的邏輯卷,容量爲25G
輸入:lvdisplay-----------------------------------------------顯示邏輯卷詳細信息
2.再給mailbox卷組創建一個邏輯卷mbox02,容量設置爲15G。
輸入:lvcreate -L 15G -n mbox02 mailbox
輸入:lvdisplay
3.如果感覺邏輯卷mbox01的空間給少了,我們可以給它擴展一個10G的空間。
輸入:lvextend -L +10G /dev/mailbox/mbox01--------給mbox01擴展10G空間,“+”表示增加多少容量,如果不帶“+”表示擴容到多少容量。
輸入:lvdisplay
第四步:格式化邏輯卷並掛載
1.格式化邏輯卷mbox01和mbox02。
輸入:mkfs.xfs /dev/mailbox/mbox01----------將邏輯卷mbox01格式化爲xfs文件格式
輸入:mkfs.xfs /dev/mailbox/mbox02----------將邏輯卷mbox02格式化爲xfs文件格式
2.在/mnt/目錄下新建兩個目錄作爲兩個邏輯卷的掛載點。
輸入:mkdir /mnt/mbox0{1..2}----------在/mnt/目錄下新建兩個名爲mbox01、mbox02的目錄
輸入:ls /mnt/--------------------------------查看/mnt/目錄下的文件或目錄
3.在/etc/fstab文件裏添加邏輯卷mbox01、mbox02的自動掛載命令。
輸入:vim /etc/fstab------------------------------------------------------------------------------用vim編輯器對fstab文件進行編輯
輸入:/dev/mailbox/mbox01 /mnt/mbox01 xfs defaults 0 0----------添加自動掛載命令
輸入:/dev/mailbox/mbox02 /mnt/mbox02 xfs defaults 0 0----------添加自動掛載命令
輸入:mount -a------------------------------------------------------------------------------------掛載所有設備
輸入:df -hT----------------------------------------------------------------------------------------查看掛載信息
4.輸入# vim /etc/fstab 進入配置自動掛載。
LVM的擴容:
邏輯卷(LV)的擴容:
ext2/ext3/ext4文件系統,調整命令是resize2fs,或者直接用“-r”自動擴展文件系統大小:
1.將mbox01邏輯卷解掛載,然後將文件格式,格式化爲ext4格式。
輸入:umount /dev/mailbox/mbox01-------------解掛載mbox01
輸入:mkfs.ext4 /dev/mailbox/mbox01----------格式化文件格式爲ext4
輸入:mount /dev/mailbox/mbox01 /mnt/mbox01----------掛載mbox01
輸入:df -hT-------------------------------------------------------------查看掛載詳情
3.我們給mbox01添加1G容量,然後查看掛載詳情,發現容量並沒有增加。
輸入:lvextend -L +1G /dev/mailbox/mbox01---------------增加容量
輸入:df -hT-------------------------------------------------------------查看掛載詳情
4.用resize2fs命令執行容量調整,然後查看發現增加容量成功。
輸入:resize2fs /dev/mailbox/mbox01-------------------------執行調整
輸入:df -hT-------------------------------------------------------------查看掛載詳情
5.使用“-r”選項直接自動擴展文件系統大小。輸入:lvextend -L +1G /dev/mailbox/mbox01 -r-------------增加mbox01容量1G並自動擴展輸入:df -hT-------------------------------------------------------------查看掛載詳情
xfs文件系統的調整命令是xfs_growfs,或者直接用“-r”自動擴展文件系統大小:
1.如果在使用mbox02的過程中,容量不夠了,我們可以直接進行擴容,但前提是卷組中有足夠的容量支持。輸入:lvextend -L +5G /dev/mailbox/mbox02----------給mbox02邏輯卷增加5G容量輸入:lvdisplay /dev/mailbox/mbox02-------------------顯示mbox02邏輯卷詳細信息
2.我們再用df -hT命令查看一下掛載信息,發現mbox02的容量並沒有增加。這是因爲文件系統還沒有同步,我們只需用xfs_growfs命令同步一下即可。
輸入:df -hT-------------------------------------------------查看掛載詳情
輸入:xfs_growfs /dev/mailbox/mbox02-----------執行調整
輸入:df -hT-------------------------------------------------查看掛載詳情
3.用“-r”直接自動擴展文件系統大小。
輸入:lvextend -L +1G /dev/mailbox/mbox02 -r-------------增加mbox02容量1G並自動擴展
輸入:df -hT-------------------------------------------------------------查看掛載詳情
卷組(VG)的擴容:
2.添加完硬盤後一般是重啓系統,但企業中服務器是不能隨意重啓的,這裏我們用echo "- - -" > /sys/class/scsi_host/host0/scan命令重新掃描scsi總線來添加磁盤。
輸入:echo "- - -" > /sys/class/scsi_host/host0/scan----------掃描scsi總線添加硬盤
輸入:fdisk -l /dev/sde--------------------------------------------------查看新增的磁盤sde
3.將新增磁盤格式化,然後添加到卷組mailbox中去,查看空間添加成功。
輸入:pvcreate /dev/sde-----------------------創建一個新的物理卷/dev/sde
輸入:vgextend mailbox /dev/sde----------將磁盤/dev/sde添加到卷組mailbox中去
輸入:vgs-------------------------------------------查看卷組信息
Linux系統LVM邏輯卷的創建與擴容