LVM相關使用

前言:

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,Linux用戶安裝Linux操作系統時遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬盤空間。普通的磁盤分區管理方式在邏輯分區劃分好之后就無法改變其大小,當一個邏輯分區存放不下某個文件時,這個文件因為受上層文件系統的限制,也不能跨越多個分區來存放,所以也不能同時放到別的磁盤上。而遇到出現某個分區空間耗盡時,解決的方法通常是使用符號鏈接,或者使用調整分區大小的工具,但這只是暫時解決辦法,沒有從根本上解決問題。隨著Linux的邏輯卷管理功能的出現,這些問題都迎刃而解,用戶在無需停機的情況下可以方便地調整各個分區大小。

實驗一:邏輯卷的實現

準備工作,準備磁盤,指定類型 (8e)
1. pvcreate /dev/sda{2,3,4}
2. vgcreate vg0  /dev/sda{2,3,4}
3. lvcreate -n lv0 -L 50%vg  vg0  (vg代替整個卷組   vg0代表的是從哪個卷組名字)
4. mkfs.ext4 /dev/vg0/lv0   (對邏輯卷創建文件系統,不是對整個磁盤)
5. 開機自動掛載,配置/etc/fstab文件
6. mount -a

實驗二:邏輯卷的擴展

準備工作,準備磁盤,指定類型 (8e)
1. pvcreate /dev/sda5
2. vgextend vg0  /dev/sda5  (先后順序: 先vg  再增加的設備)
      -s  指定PE的大小
3. lvextend -L +2G  /dev/vg0/lv0  (增加之后并不會立即增加容量,要做下面工作)
4. xfs_growfs /mnt/lvo   (同步文件系統,后面跟的是掛載點,xfs系統只能增加不減少)
    resize2fs /dev/vg0/lv0  10G  (10跟增加后的容量要一樣, 原來的容量+增加的容量   并且同步ext4文件系統)
   注:如果指定超過容量系統無法識別
       格式必須為:resize2fs  邏輯卷  容量大小 
       如果第3步增加的是2G,但在第4步只指定增加了1G,會成功,增加了1G,
           但還有剩下的1G再去重新指定,就無法指定了(在指定容量一定要注意,實際到底多少容量)
       注:或者3,4合并為一步
          lvextend -r -L +500M /dev/vg0/lv1   — > 自動同步文件系統
       注:前提–>在使用-r的時候,該設備lv1必須有文件系統和掛載上電腦上.否則無法執行
          -r 是自動同步文件系統

實驗三:縮減邏輯卷

注:縮減必須先取消掛載,也有風險,里面存有數據(一定要先備份)
1. umount /mnt/lv1
2. resize2fs /dev/vg0/lv1  2G  (縮減到2G的容量)
   注:在縮減的時候系統會提醒你 檢查文件系統 –> 必須要檢查的 e2fsck -f 
     再執行上面的命令即可 (用lvs查看的時候,容量并沒有減少。)
3. e2fsck -f /dev/vg0/lv1
4. lvreduce -L 2G /dev/vg0/lv1  (這才是真正的減少)
    注:該操作具有危險性,可能對已有的數據產生破壞,會讓用戶確認
5. 重新掛載

實驗四:遷移邏輯卷

  1. umount /mnt/lv0
  2. vgrename vg0  newvg0
  3. lvrename /dev/newvg0/lv0  newlv0
       注:上面2,3是為了防止在其它設備上出現相同名字的設備,所以進行改名操作
  4. vgchange -an newvg0 
       注:把newvg0設置為禁用狀態  a:all   n:no
  5. vgexport newvg0
       注:導出 newvg0 (卷組)
  6. 拆除硬盤,  關機   關機
       插入目標主機中
  7.  pvscan
       掃描
  8.  vgimport newvg0 
       導入
  9.  vgchange -ay newvg0 
       啟用
  10. mkdir /mnt/newlv0
       創建掛載點
  11. mount /dev/newvg0/newlv0  /mnt/newlv0
       掛載

實驗五:從邏輯卷中刪除正在使用的物理分區

刪除邏輯卷   lvremove /dev/VG_NAME/LV_NAME
1. vgdisplay  pvdisplay
2. pvmove  /dev/sda1 (想要拔掉卷組中的某個設備)
   注:移動所占用的空間到相同卷組中的設備上去
      移動的是空間,并不是當中的數據
   注:如果里面是空的,并沒有分配空間,是空的,可以直接刪除
3. vgreduce  vg0  /dev/sda5 
      從vg0組中移除
   注:vgreduce  移除單個
     vgreduce  vg0  /dev/sda5 –>單單移除vg0中的/dev/sda5
     vgremove  移除相關組的全部
     vgreduce  vg0  /dev/sda5 –>在相同vg0組的全部移除
4. pvremove /dev/sda5  
   移除物理卷

實驗六:為邏輯卷創建快照

為現有邏輯卷創建快照 
   lvcreate -L  512M  -s  -n snap-data -p r  /dev/vg0/data (對哪個設備做快照)
      -s  快照
      -p r  設備只讀屬性
      -L  指定其大小
      -n  名字
掛載快照 
   mkdir -p  /mnt/snap 
   mount -o ro /dev/vg0/snap-data  /mnt/snap  (無法進行修改,上面的已經確定了快照的狀態)
   注:掛載快照,工作同步 –> 寫時復制
恢復快照 
   umount /dev/vg0/snap-data 
   umount /dev/vg0/data 
   lvconvert  –merge  /dev/vg0/snap-data 
      –merge 合并
      注:恢復快照之后快照的文件自動刪除(一次性的,恢復之后快照自動刪除)
      恢復的時候,必須全都在非掛載的狀態下,恢復
刪除快照 
    umount /mnt/databackup 
    lvremove /dev/vg0/databackup
   快照 — lv — vg — pv 從上往下刪除

原創文章,作者:_xddggg,如若轉載,請注明出處:http://www.www58058.com/84670

(0)
_xddggg_xddggg
上一篇 2017-08-13 21:37
下一篇 2017-08-13 21:57

相關推薦

  • N28第五周

    1、簡述rpm與yum命令的常見選項,并舉例
    2、自建yum倉庫,分別為網絡源和本地源
    3、簡述at和crontab命令,制定 每周三凌晨三、五點10分執行某個腳本,輸出當前時間,時間格式為 2017-12-28 10:00:00
    4、簡述sed常用操作命令,并舉例

    Linux干貨 2018-01-03
  • GIAC 2017全球互聯網架構大會12月22日即將登陸上海!

    12月22~23日,高可用架構和msup聯合主辦的GIAC 全球互聯網架構大會將于上海舉行。GIAC 2017全球互聯網架構大會優惠報名平臺活動家

    2017-12-04
  • sed對比grep之理解

    sed對比grep之理解 很多時候回車按下,沒有結果,或是報錯。 檢查發現都是低級錯誤,關鍵是習慣剛學完grep,有寫習慣沒改過來。 sed語法很重要。script語法寫對了,就成功了一大半,剩下的就是正則表達式的問題了。 sed與grep的區別是 grep是個行過濾器,篩選符合條件的行。也可以只顯示每行匹配到的文本(-o選項),不對文本進行編輯,只是顯示查…

    Linux干貨 2016-08-10
  • 【linux】正則表達式之grep、egrep、元字符

    正則表達式:     又稱正規表示法、常規表示法(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。是一類字符所書寫的模式,其中許多字符(元字符)不表示其字面意義,而是表達控制或通配等功能。正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符…

    Linux干貨 2015-04-01
  • DNS以及bind使用

    DNS以及域名分發布式數據庫相關知識      一、 DNS相關介紹           1. DNS(Domain Name Service):域名解析服務協議         &nbsp…

    2015-03-17
  • shell腳本基礎

    程序是由指令加數據組成 編程風格分為過程式和對象時 過程式:以指令為中心,數據服務于指令,適合小型程序 對象式:以數據為中心,指令服務于數據,社和大型程序 高級語言的執行方式分為編譯型和解釋型 編譯型:先將高級語言通過編譯器編譯成二進制代碼再執行 解釋型:程序編寫完成后不轉換成二進制代碼,在使用時才通過解釋器解釋運行,不生成二進制程序 shell就是一種解釋…

    Linux干貨 2016-08-18
欧美性久久久久