吳佳驊
摘 要 本文介紹了彈性存儲和LVM,提出了一種運用LVM實現(xiàn)基于分區(qū)的彈性存儲的方案,并給出了實現(xiàn)過程。
關(guān)鍵詞 彈性存儲 LVM
中圖分類號:TP316 文獻(xiàn)標(biāo)識碼:A
1彈性存儲
彈性存儲,是指根據(jù)存放數(shù)據(jù)的多少或者使用者的要求來動態(tài)調(diào)整分配給其的存儲空間,調(diào)整過程中無須停機(jī)和卸載硬盤。因為有著極佳的存儲空間即時延展性,所以非常適合運用在需要存儲變動較頻繁的服務(wù)器上,如網(wǎng)盤服務(wù)、郵件服務(wù)、虛擬主機(jī)服務(wù)等等。
彈性存儲,從其實現(xiàn)途徑上來看,可以分為兩種,基于目錄的彈性存儲和基于分區(qū)的彈性存儲。
基于目錄的彈性存儲,是在對應(yīng)的目錄下動態(tài)的控制不同用戶或者不同服務(wù)對于目錄存儲空間的使用上限,通常用設(shè)置磁盤配額的方式來實現(xiàn)。這種方式最大的短板是其受制于目錄所在磁盤分區(qū)的空間上限,僅能在有限的空間內(nèi)做存儲空間的按需分配,對存儲空間的預(yù)留有所要求,并且對到達(dá)上限之后的空間增長實現(xiàn)難度較大,也不便利。一般只是用于數(shù)據(jù)量不大的服務(wù),如郵件服務(wù)之類。
基于分區(qū)的彈性存儲,則是利用直接讓分區(qū)實現(xiàn)即時延伸的手段來達(dá)到存儲空間的動態(tài)分配,相較于基于目錄的彈性存儲,其上限是硬盤的空間上限,而這種上限又可以通過多個硬盤疊加的形式來獲得理論上的無限擴(kuò)充,空間增長相對容易。與對存儲空間需求較大的網(wǎng)盤服務(wù)、虛擬主機(jī)服務(wù)等等有相當(dāng)好的適合相性。
2 LVM介紹
LVM,英文全名為Logical Volume Manager,中文翻譯名稱是邏輯卷管理。目前主流的Linux發(fā)行版中都集成了LVM。LVM極佳的延展性使得其非常適合用于實現(xiàn)基于分區(qū)的彈性存儲。
LVM被設(shè)計為3層結(jié)構(gòu),最底層是物理卷PV(Physical Volume),中間層是卷組VG(Volume Group),最上層是邏輯卷LV(Logical Volume)。LVM結(jié)構(gòu)如圖1所示。
圖1:LVM結(jié)構(gòu)圖
物理卷PV,由基本硬盤分區(qū)構(gòu)建而成,用于提供組成卷組VG的材料。
卷組VG,由一個或多個物理卷PV組成,卷組VG的存儲空間大小即組成它的所有物理卷PV的空間大小之和。卷組VG可以添加新的物理卷PV來擴(kuò)展其存儲空間。
邏輯卷LV,在卷組VG上組建得到,是實際實現(xiàn)存儲的分區(qū),可以隨意即時延展。
3實現(xiàn)方式
本文所使用的系統(tǒng)環(huán)境為CentOS6.5。
3.1使用LVM構(gòu)建存儲層
3.1.1在磁盤上構(gòu)建物理卷PV
(1)對基礎(chǔ)硬盤分區(qū)。
[root@localhost mnt]# fdisk /dev/sdb
Command (m for help): n
Command action p
Partition number(1-4): 1
(2)修改分區(qū)的文件系統(tǒng)ID為8e。
Command (m for help): t
Selected Partition 1
Hex code (type L to list codes): 8e
(3)將分區(qū)建立為物理卷PV。
[root@localhost mnt]# pvcreate /dev/sdb1
3.1.2將構(gòu)建的物理卷PV組建成卷組VG
(1)查看目前存在的物理卷PV。
[root@localhost mnt]# pvdisplay
(2)選擇需要使用的物理卷PV組建成卷組VG。
[root@localhost mnt]# vgcreate vg1 /dev/sdb1
(3)查看組建的卷組VG的信息。
[root@localhost mnt]# vgdisplay
3.2當(dāng)出現(xiàn)新用戶user1請求空間時建立一塊邏輯卷LV分配給user1
(1)在卷組VG上建立邏輯卷LV。
[root@localhost mnt]# lvcreate –L 1G –n user1 vg1
(2)格式化新建立的邏輯卷LV。
[root@localhost mnt]# mkfs.ext4 /dev/vg1/user1
(3)把新建立的邏輯卷LV掛載到user1的存儲目錄。
[root@localhost mnt]# mount /dev/vg1/user1 /home/user1/storage
(4)設(shè)置user1的存儲目錄權(quán)限。
[root@localhost mnt]# chmod 700 /home/user1/storage
3.3當(dāng)現(xiàn)有用戶user1空間耗盡,請求新空間時,延展其邏輯卷LV
(1)擴(kuò)展邏輯卷LV的空間。
[root@localhost mnt]# lvextend –L +1G /dev/vg1/user1
(2)格式化擴(kuò)展的空間部分。
[root@localhost mnt]# resize2fs /dev/vg1/user1
3.4當(dāng)現(xiàn)有卷組VG空間耗盡時,延展其空間
(1)加入新的硬盤建立新的物理卷PV。
[root@localhost mnt]# pvcreate /dev/sdc1
(2)將物理卷PV補充到卷組VG中,存儲空間得到延伸。
[root@localhost mnt]# vgextend vg1 /dev/sdc1