LVM2 ( Blog4 )

LV基本應用,擴展及縮減實現

LVM2
Logical Volume Manager, Version 2
軟件方式組織多個底層硬件設備為一個抽象的邏輯設備;device: 支持RAID, LVM2, 磁盤, 分區, Multipath

LVM2實現
驅動:內核模塊:dm: device mapper
用戶空間管理程序:lvm
設備文件:/dev/dm-#

邏輯卷:LV;指定數量的PE,組成邏輯空間;LE(Logical Extent物理盤區):PE分配給LV之后的名字;
可以格式化;可為卷組內任意的任意大小,不危害其中的數據
缺點:損壞后,修復困難;
名稱:LV_NAME
lvpath:/dev/mapper/VG_NAME-LV_NAME /dev/VG_NAME/LV_NAME

卷組:VG;相當于擴展分區(不能直接格式化使用);PE(Pysical Extent物理盤區): PV加入VG后,由VG定義;
包含物理卷;只能整個物理卷加入或收縮;
名稱:VG_NAME
注意:收縮VG
1、剩余空間可承載LV;
2、收縮空間的數據,需要挪到剩余空間中;

物理卷:PV;存儲元數據;

快照:創建那一刻起,瞬間完成對目標邏輯卷完成掃描其元數據,為其創建一個快照;在快照中可以訪問原卷中的所有內容相當于硬鏈接,不能跨文件系統;只要原卷元數據改變(文件名,大小,時間戳,屬主,屬組,權限),就會將“將要變化的數據”備份至快照中;所以快照的大小取決于原卷變化量(對備份內容的變化量);最大大小為:原卷大?。?br />快照只會備份:快照那一刻之前的所有數據;之后新增加的數據,需要用:增量備份或差異備份;
位置:與原卷在同一文件系統中;同一目錄下;

備份:將數據流抽成絲狀(數據序列化的過程)進行復制;所以只有序列化的數據才可以備份;

物理卷管理:
創建:pvcreate device …
刪除:pvremove device …
查看:pvs, pvdisplay

卷組管理:
創建:vgcreate -s PE_SIZE VG_NAME device …
擴展:vgextend VG_NAME device …
縮減:vgreduce VG_NAME device …
刪除:vgremove VG_NAME
查看:vgs, vgdisplay

邏輯卷管理:
創建:lvcreate -L [+]LV_SIZE -l LE_SIZE -n LV_NAME VG_NAME
擴展:lvextend -L [+]LV_SIZE lvpath
縮減:lvreduce -L [-]LV_SIZE lvpath
刪除:lvremove lvpath
快照:lvcreate -L [+]LV_SIZE -s -n LV_snap -p r lvpath
查看:lvs, lvdisplay

創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB,而后在卷組中創建大小為5G的邏輯卷testlv,掛載至/users目錄;
新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄;
擴展testlv至7G,要求archlinux用戶的文件不能丟失;
收縮testlv至3G,要求archlinux用戶的文件不能丟失;
對testlv創建快照,并嘗試基于快照備份數據,驗證快照的功能;

創建一個至少有兩個PV組成的大小為20G的名為testvg的VG;要求PE大小為16MB,而后在卷組中創建大小為5G的邏輯卷testlv,掛載至/users目錄;
分區:
查看可用分區:
~]# fdisk -l /dev/sd[a-z]
CentOS 6,7依據不同方式劃分分區:
sectors: CentOS 7
cylinders: CentOS 6
創建兩個id號為”8e”的10G大小的分區:
~]# fdisk /dev/sdb
/dev/sdb11 125845504 146817023 10485760 8e Linux LVM
/dev/sdb12 146819072 167790591 10485760 8e Linux LVM
查看內核識別的分區:
~]# cat /proc/partitions
重載內核分區表:
~]# partx -a /dev/sdb
~]# partx -a /dev/sdb

創建LV:
創建PV、查看其詳細信息:
~]# pvcreate /dev/sdb11 /dev/sdb12
~]# pvdisplay /dev/sdb11
“/dev/sdb11” is a new physical volume of “10.00 GiB”
— NEW Physical volume — (未加入VG前,顯示其狀態;)
PV Name /dev/sdb11
VG Name
PV Size 10.00 GiB
Allocatable NO (只有加入到VG中方可分配;以下均在加入指定VG或新建VG后,由VG管理生成;)
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID BfQOYB-lhc1-ccCV-LqJl-XurI-i2dS-zzA5Ri

創建VG、查看其詳細信息:
~]# vgcreate -s 16M testvg /dev/sdb11 /dev/sdb12
~]# vgdisplay testvg
— Volume group —
VG Name testvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size <19.97 GiB
PE Size 16.00 MiB
Total PE 1278
Alloc PE / Size 0 / 0
Free PE / Size 1278 / <19.97 GiB
VG UUID a1y9DS-ULit-ECwP-EC0A-eROQ-wob8-DcVYM7

~]# pvdisplay /dev/sdb11
— Physical volume —
PV Name /dev/sdb11
VG Name testvg
PV Size 10.00 GiB / not usable 16.00 MiB
Allocatable yes (加入VG后,可分配;以及顯示下面PE相關信息)
PE Size 16.00 MiB
Total PE 639
Free PE 639
Allocated PE 0
PV UUID BfQOYB-lhc1-ccCV-LqJl-XurI-i2dS-zzA5Ri

創建LV、查看其詳細信息:
~]# lvcreate -L 5G -n testlv testvg
~]# lvdisplay testlv testvg
— Logical volume —
LV Path /dev/testvg/testlv
LV Name testlv
VG Name testvg
LV UUID POkeBt-PPXN-5JZk-Xyth-DRQh-wqmE-9q47Zf
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2017-11-12 15:49:12 +0800
LV Status available
# open 0
LV Size 5.00 GiB
Current LE 320
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 8192
Block device 253:3

LV格式化及掛載:
格式化:
~]# mke2fs -t ext4 /dev/testvg/testlv
查看文件系統屬性:
~]# blkid /dev/testvg/testlv
/dev/testvg/testlv: UUID=”8acca7c8-05d8-40a6-afdf-72478ee66da3″ TYPE=”ext4″
創建掛載點:
~]# mkdir -v /users
掛載:
~]# mount /dev/testvg/testlv /users
注意:掛載的設備和查看的結果不同;

查看掛載狀態:
~]# mount
/dev/mapper/testvg-testlv on /users type ext4 (rw,relatime,seclabel,data=ordered)

新建用戶archlinux,要求其家目錄為/users/archlinux,而后su切換至archlinux用戶,復制/etc/pam.d目錄至自己的家目錄;
創建以/users/archlinux家目錄的archlinu用戶:
~]# useradd -d /users/archlinux archlinux
~]# tail -1 /etc/passwd
archlinux:x:1005:1005::/users/archlinux:/bin/bash
切換至archlinux用戶并完成復制文件:
~]# su – archlinux
~]$ cp -r /etc/pam.d .

擴展testlv至7G,要求archlinux用戶的文件不能丟失;
擴展邏輯邊界
~]# lvextend -L 7G /dev/testvg/testlv
查看文件系統大小
~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 4.8G 21M 4.6G 1% /users <–仍顯示5G
擴展物理邊界
~]# resize2fs /dev/testvg/testlv
~]# df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 6.8G 23M 6.4G 1% /users <–顯示7G
查看文件是否損壞:
~]# cat /users/archlinux/.bashrc
沒有損壞;

收縮testlv至3G,要求archlinux用戶的文件不能丟失;
卸載:
~]# umount /users
檢測:
~]# e2fsck -f /dev/mapper/testvg-testlv
縮減物理邊界:
~]# resize2fs /dev/mapper/testvg-testlv 3G
縮減邏輯邊界:
~]# lvreduce -L 3G /dev/mapper/testvg-testlv
掛載:
~]# mount /dev/mapper/testvg-testlv /users/
查看文件系統大?。?br />~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 2.9G 16M 2.7G 1% /users
查看文件是否損壞:
~]# cat /users/archlinux/.bashrc
沒有損壞

對testlv創建快照,并嘗試基于快照備份數據,驗證快照的功能;
創建快照:
~]# lvcreate -L 200M -s -n testlv_snap -p r /dev/mapper/testvg-testlv
~]# ls /dev/testvg/
testlv testlv_snap
注意:快照路徑與原卷路徑在同一個文件系統;
掛載快照:
~]# mount -r /dev/testvg/testlv_snap /mnt
~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/testvg-testlv 2.9G 16M 2.7G 1% /users
/dev/mapper/testvg-testlv_snap 2.9G 16M 2.7G 1% /mnt
注意:原卷與快照卷大小相同;注意:Filesystem下路徑是否相同;別掛載失誤,導致悲劇;
查看快照中的內容:
~]# ls /mnt
archlinux lost+found
修改原卷中的內容:
~]# echo “123” >> /users/archlinux/.bashrc
查看快照中是否也變化:
~]# cat /mnt/archlinux/.bashrc
沒有改變;
備份快照卷:
~]# mkdir -pv /media/backup/testlv_snap
~]# cp -a /mnt/* /media/backup/testlv_snap
刪除快照卷:
~]# umount /mnt
~]# lvremove /dev/testvg/testlv_snap
恢復原卷至備份快照的那一刻:
~]# rm -rf /users/*
~]# cp -a /media/backup/testlv_snap/* /users
~]# cat /users/archlinux/.bashrc

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89045

(0)
逆神陽逆神陽
上一篇 2017-11-27
下一篇 2017-11-27

相關推薦

  • 在CentOS中獲取命令幫助

    在CentOS中獲取命令幫助    在使用和學習CentOS系統中,當我們遇上不熟悉的命令卻又需要了解它的詳細用法的時候,我們需要獲取幫助。除了借助他人和搜索引擎之外,自己通過查看系統幫助文檔來解決問題是很重要的。下面就來介紹如何獲取幫助以及簡單的解決思路:    一、如何獲取命令幫助 Linux提供多層次的命令幫助:…

    Linux干貨 2016-07-27
  • VMware vSphere所需要開放的端口

        80 vCenter Server需要端口80用于直接HTTP連接。端口80會將請求重定向到HTTPS端口443。如果意外使用了http://server而不是https://server,此端口將非常有用。     389 此端口在vCenter Server的本地和所…

    Linux干貨 2016-07-07
  • Linux基礎-第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。 5、取出當前主機的…

    2018-03-19
  • 配置yum服務器——以centOS 6.9系統為例

    準備工作 關閉防火墻  關閉防火墻service iptables stop  設置防火墻開機不啟動chkconfig iptables off  查看一下防火墻狀態 iptables -vnL 如下圖,可以看到已經關閉 關閉SElinux 使用命令 vim /etc/selinux/config 將SELINUX=enable…

    Linux干貨 2017-08-05
  • kickstart+http+dhcp+tftp實現centos7的無人值守安裝

    環境:IP: 172.16.0.11 centos 7.2 一. tftp 安裝tftp服務端和客戶端 [root@localhost ~]# yum -y install tftp tftp-server 啟動tftp [root@localhost ~]# systemctl start tftp.socket [root@localhost ~]# s…

    Linux干貨 2017-06-03
  • DNS相關配置

    DNS基礎概念: DNS全稱為Domain Name System。它作為將域名和IP地址相互映射的得一個分布式數據庫,能夠使人更方便的訪問互聯網 DNS使用TCP和UDP得53號端口 BIND是DNS得實現方式之一 named是bind程序得運行的進程名 named進程的主要運行者是named用戶,為了安全起見,它的程序也應該以named用戶運行 配置正向…

    Linux干貨 2017-05-30
欧美性久久久久