LVM
Logical Volume Manager(邏輯卷管理)
是Linux環境下對底層磁盤的一種管理機制(方式),處在物理磁盤和文件系統之間.
名詞:
PV (Physical Volume)物理卷
VG (Volume Group)卷組
LV (Logical Volume)邏輯卷
最小存儲單元:總結
名稱 最小存儲單位
硬盤 扇區(521字節)
文件系統 block(1K或4K)
raid chunk(521K) mdamd -c 命令可以指定大小
LVM PE(16M自己定義)
實驗開始:
1.准備工作 分區 fdisk /dev/sdb (3個)
2.制作PV #pvcreate /dev/sdb{1,2} #就是把物理磁盤分區做成物理卷
3.制作VG #vgcreate Vg1 /dev/sdb1 /dev/sdb2 #都把生產好的PV統一加入一個組里面Vg1,進行下一步的重新分區等..
4.制作LV #lvcreate -n LV1 -L 1.5G Vg1 # -n 指lv的name # -L指定大小 (在Vg1組里面分多少給LV1)
創建指定PE的VG: #vgcreate -s 16M Vg1 /dev/sdb1 /dev/sdb2
格式化掛載使用:
#mkfs.ext4 /dev/Vg1/LV1
#mount /dev/Vg1/LV1 /opt/
各種查看命令
#pvs #pvscan #pvdisplay
#vgs #vgscan #vgdisplay
#lvs #lvscan #lvdisplay
擴展:
#lvextend -L +300M /dev/Vf1/LV1 #加300M空間
#df -h #發現空間沒變 ,上面只是擴展了LVM,沒有擴展上層的文件系統,所以擴展了LV,在擴展文件系統的(重置刷新)
centos6 : #resize2fs /dev/Vg1/LV1
centos7: #
CentOS7.0的默認文件系統類型是 Xfs 其對應的調整命令是 xfs_growfs 不同文件系統類型對應的創建、檢查、調整命令不同,要注意區分。
運行了上面的命令,就算擴容好了.
下面是 VG的擴展(新加硬盤sdb3):
#vgextend Vg1 /dev/sdb3
#pvs #查看sdb3已經在列表了
LV縮減:將邏輯卷LV1縮減
lvm支持在線縮小,但是ext4文件系統不支持在線縮小,btrfs支持在線縮小.
Btrfs簡介:一直使用ext2/3,ext文件系統以其卓越的穩定性成為了事實上的Linux標准文件系統,今年來ext2/3暴露出了一些擴展性問題,於是便催生了ext4,(過渡) ext4作者也盛贊brtfs並將成為下一代Linux標准文件系統.
Btrfs的特性:
首先,擴展性(scalability)相關的特性,btrfs最重要的設計目標是應對大型機器對文件系統的擴展性要求,整體性能而不會隨着系統容量的增加而降低.
其次是數據一致性(data integrity)相關的特性.
第三是和多設備管理相關的特性,Btrfs支持創建快照(snapshot)和克隆(clone).
最后,這些特性是比較先進的技術,能夠顯著提高文件系統的時間,空間性能,包括延遲分配,小文件的存儲優化,目錄索引等.
縮減例子:
#resize2fs /dev/Vg1/LV1 1000M #ext4格式 直接輸入提示在線縮減不支持 所以先umount 卸載
正確步驟:
#umount /opt/ #先卸載掛載
#e2fsck -f /dev/Vg1/LV1 #檢查文件系統有啥錯誤
#resize2fs /dev/Vg1/LV1 1000M #centos 6
#lvreduce -L 1000M /dev/Vg1/LV1
#mount ... #把縮小的掛載上
擴文件系統:先擴LVM,然后擴文件系統 縮減文件系統,先縮減文件系統,在把LVM縮小
VG縮減:
縮減時,可以不卸載正在使用中的LV.另外,只能縮減沒有被使用的pv,否則會提示一下內容:
(使用中... Physical volume "/dev.sdb1" still in use)[如果執意想縮減,先把sdb1邏輯卷干掉]
#vgreduce Vg1 /dev/sdb1
LVM刪除:先umount 然后刪除(從上往下lv-vg-pv)
#lvremove /dev/Vg1/LV1 #刪除邏輯卷
#vgremove Vg1 #刪除卷組
#pvremove /dev/sda5 #刪除物理卷
LVM快照功能:
兩大功能1.克隆虛擬機2.實時備份
原來有一個lv的基礎上
#lvcreate -s -n lv_NAME_bak -L 200M /dev/Vg1/LV1
#創建一個名字為Lv_NAME_bak,大小為200M的快照 -s 是快照snapshot,-n是name
#lvs
LVM分配限額:
限制用戶和組對硬盤的使用
需要按照的包#rpm -q quota
1.啟用quota磁盤配額功能
分區格式化后掛載:#mount /dev/sdb3 /tmp/sdb3/
#mount -o remount,usrquota,grpquota /tmp/sdb3/
#mount 查看
/dev/sdb3 on /tem/sdb3 type ext4 (rw,usrquota,grpquota)
其實上面磁盤已經支持限額了,但是還有一點,就是讓這個lv開機也自動掛載(原來講過)
#vim /etc/fstab
/dev/sdb3 /tmp/sdb3 ext4 defaults,usrquota,grpquota 0 0
---上面准備工作已經做好
3.檢查磁盤配額並生產配額文件
#quotacheck -cugv /tmp/sdb3
完了后,目錄里面多了2個配置文件(aquota.group 和aquota.user)
注:這個操作要關閉selinux. setenforce 0 #關閉selinux
#getenforce #查看
更改:#vim /etc/selinux/config
4.用戶和組賬號的配額設置
#useradd mk #創建用戶,建立用戶會建立同名組
#eduota -g mk #給這個用戶組設置配額,會調出vi編輯器,進行編輯
5.激活磁盤配額
#quotaon -ugv /tmp/sdb3
6.驗證
#mkdir /emp/sdb3/test
#chmod 777 /emp/sdb3/test
#su -mk #切換到這個用戶下
#cd /tmp/sdb3/test
#dd if=/dev/zero of=mk.txt bs=1K count=70
#rm -rf mk.txt