linux系統用戶常遇到的一個問題就是如何精準的評估分區的大小,已分配合適的磁盤空間;普通的磁盤分區管理方式在邏輯分區劃分好以後就沒法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件由於受上層文件系統的限制,也不能跨越多個分區來存放,因此也不能同時放到別的磁盤上。而遇到出現某個分區空間耗盡時,解決的方法一般是使用符號連接,或者使用調整分區大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題。隨着Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的狀況下能夠方便地調整各個分區大小。(參考百度百科)linux
<font color=red>邏輯卷的缺點:</font>服務器
- 邏輯卷主要的做用就是動態管理分區的大小,可是如今市場上的磁盤已經很廉價了,咱們徹底能夠分配合適的磁盤空間。
- 在磁盤直接分區是屬於直接在磁盤上創建文件系統,而邏輯卷是創建磁盤和文件系統之間的標識,因此當線上服務器的磁盤壞了,數據恢復有很大的風險
- 邏輯卷的數據讀寫的速度也是有些慢的
##一、LVM經常使用的術語:app
##二、經常使用的LVM部署命令dom
功能/命令 | 物理卷管理 | 卷組管理 | 邏輯卷管理 |
---|---|---|---|
掃描 | pvscan | vgscan | lvscan |
創建 | pvcreate | vgcreate | lvcreate |
顯示 | pvdisplay | vgdisplay | lvdisplay |
刪除 | pvremove | vgremove | lvremove |
擴展 | vgextend | lvextend | |
縮小 | vgreduce | lvreduce |
##xfs文件系統管理經常使用命令tcp
命令 | 做用 |
---|---|
xfs_admin | 調整 xfs 文件系統的各類參數 |
xfs_copy | 拷貝 xfs 文件系統的內容到一個或多個目標系統(並行方式) |
xfs_db | 調試或檢測 xfs 文件系統(查看文件系統碎片等) |
xfs_check | 檢測 xfs 文件系統的完整性 |
xfs_bmap | 查看一個文件的塊映射 |
xfs_repair | 嘗試修復受損的 xfs 文件系統 |
xfs_fsr | 碎片整理 |
xfs_quota | 管理 xfs 文件系統的磁盤配額 |
xfs_metadump | 將 xfs 文件系統的元數據 (metadata) 拷貝到一個文件中 |
xfs_mdrestore | 從一個文件中將元數據 (metadata) 恢復到 xfs 文件系統 |
xfs_growfs | 調整一個 xfs 文件系統大小(只能擴展) |
xfs_freeze | 暫停(-f)和恢復(-u)xfs 文件系統 |
xfs_logprint | 打印xfs文件系統的日誌 |
xfs_mkfile | 建立xfs文件系統 |
xfs_info | 查詢文件系統詳細信息 |
xfs_ncheck | generate pathnames from i-numbers for XFS |
xfs_rtcp | XFS實時拷貝命令 |
xfs_io | 調試xfs I/O路徑 |
##三、LVM邏輯卷部署工具
物理卷 --> 卷組 --> 邏輯卷 ①. 建立物理卷 pvcreate /dev/sd{b,c} ②. 建立卷組 vgcreate vg_du /dev/sd{b,c} ③. 建立邏輯卷 lvcreate -n lv_du -L 500M vg_ken ④. 格式化 mkfs.xfs /dev/vg_du/lv_du ⑥. 掛載使用 mount /dev/vg_du/lv_du /testspa
注意:卸載命令umount 後面跟掛載點或者磁盤均可以調試
LVM擴容 lvextend -L +300M /dev/vg_du/lv_du lvextend -L 800M /dev/vg_du/lv_durest
xfs_growfs /dev/vg_du/lv_du日誌
##演示:
#第一步:添加磁盤並查看 ╭─root@localhost.localdomain ~ ╰─➤ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc #第二步:建立物理卷 ╭─root@localhost.localdomain ~ ╰─➤ pvcreate /dev/sd{b,c} 5 ↵ Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created. #第三步:建立卷組 ╭─root@localhost.localdomain ~ ╰─➤ vgcreate vg_du /dev/sd{b,c} Volume group "vg_du" successfully created #第四步:建立邏輯卷並格式化邏輯卷 ╭─root@localhost.localdomain ~ ╰─➤ man lvcreate #開手冊查看用法,經常使用option:-l -L -n ╭─root@localhost.localdomain ~ ╰─➤ lvcreate -L 1G -n lv_du1 vg_du #-L:size 大小 -n:name 名字 Logical volume "lv_du1" created. ╭─root@localhost.localdomain ~ ╰─➤ mkfs.xfs /dev/vg_du/lv_du1 meta-data=/dev/vg_du/lv_du1 isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 ╭─root@localhost.localdomain ~ ╰─➤ lvcreate -l 250 -n lv_du2 vg_du #-l :數量 Logical volume "lv_du2" created. ╭─root@localhost.localdomain ~ ╰─➤ mkfs.xfs /dev/vg_du/lv_du2 meta-data=/dev/vg_du/lv_du2 isize=512 agcount=4, agsize=64000 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=256000, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=855, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 #第五步:掛載 ╭─root@localhost.localdomain ~ ╰─➤ mkdir /du1 ╭─root@localhost.localdomain ~ ╰─➤ mkdir /du2 ╭─root@localhost.localdomain ~ ╰─➤ mount /dev/vg_du/lv_du1 /du1 ╭─root@localhost.localdomain ~ ╰─➤ mount /dev/vg_du/lv_du2 /du2 ╭─root@localhost.localdomain ~ ╰─➤ df #查詢掛載成功 文件系統 1K-塊 已用 可用 已用% 掛載點 /dev/mapper/cl-root 17811456 4837880 12973576 28% / devtmpfs 484108 0 484108 0% /dev tmpfs 499968 144 499824 1% /dev/shm tmpfs 499968 7228 492740 2% /run tmpfs 499968 0 499968 0% /sys/fs/cgroup /dev/sda1 1038336 176600 861736 18% /boot tmpfs 99996 16 99980 1% /run/user/0 /dev/sr0 4276440 4276440 0 100% /run/media/root/CentOS 7 x86_64 /dev/mapper/vg_du-lv_du1 1038336 32944 1005392 4% /du1 /dev/mapper/vg_du-lv_du2 1020580 32944 987636 4% /du2 #第六步:開機自啓 ╭─root@localhost.localdomain ~ ╰─➤ echo "/dev/mapper/vg_du-lv_du1 /du1 xfs defaults 0 0" >> /etc/fstab ╭─root@localhost.localdomain ~ ╰─➤ echo 「mount /dev/vg_du/lv_du2 /du2」 >> /etc/rc.local ╭─root@localhost.localdomain ~ ╰─➤ chmod +x /etc/rc.local #給個執行權限 # /etc/rc.local 是使用者自訂開機啓動程序的文件,把須要開機自動運行的程序寫在這個腳本里