天天看點

8.linux 中的邏輯卷

一.簡單介紹:

MD, DM:是核心中兩種實作邏輯裝置的子產品

MD: meta device,multidisk,邏輯裝置:軟體raid

DM: Device Mapper 裝置映射,邏輯裝置: LVM2(動态增減)

二.建立邏輯卷

1.建立分區:

<code>fdisk</code> <code>-l </code><code>/dev/sdb</code>  <code>/dev/sdc</code>      <code>#n---&gt;p---&gt;t---&gt;w   調整類型為8e</code>

2.更新核心資訊   

<code>partx -a </code><code>/dev/DEVICE</code>

<code>partprobe </code>

<code>cat</code> <code>/proc/partitions</code> <code>:檢視</code>

3.實體卷(pv)

<code>建立實體卷:pvcreate </code><code>/dev/sdb</code> <code>dev</code><code>/sdc1</code>

<code>顯示實體卷:pvs,pvscan,pvdisplay</code>

<code>移除實體卷:pvremove </code><code>/dev/sdb</code>

4.卷組(vg)

<code>建立卷組: vgcreate vgname  </code><code>/dev/sdb</code> <code>/dev/sdc</code>     <code>#-s  指定PE的大小(PE大小預設為4MB)</code>

<code>擴充卷組:(添加新的實體卷到卷組中):</code>

<code>        </code><code>fdisk</code> <code>-l </code><code>/dev/sdc</code>

<code>        </code><code>pvcreate </code><code>/dev/sdc2</code>

<code>        </code><code>vgextend vgname </code><code>/dev/sdc2</code>

<code>    </code> 

<code>顯示卷組: vgs,vgdisplay,vgscan</code>

<code>縮減卷組(從卷組中删除實體卷):</code>

<code>    </code><code>把pv裡資料移走: pvmove  -n myvg </code><code>/dev/sdc2</code> 

<code>    </code><code>縮減vg:vgreduce myvg  </code><code>/dev/sdc2</code>

<code>    </code><code>删除pv: pvremove </code><code>/dev/sdc2</code>

<code>删除卷組:</code>

<code>    </code><code>先删除邏輯卷:lvremove </code><code>/dev/vgname/lvname</code>

<code>    </code><code>删除卷組:vgremove vgname</code>

<code>激活所有卷組:    </code>

<code>    </code><code>vgchange -a y</code>

5.邏輯卷

<code>建立邏輯卷:</code>

<code>    </code><code>lvcreate -L 1500M -n lvname vgname    </code>

<code>             </code><code>-L 指定大小,-n 指定邏輯卷名字               </code>

<code>    </code><code>注意:</code><code>#/dev/vgname/lvname  軟連結      /dev/mapper/vgname-lvname實際    </code>

<code>若使用全部卷組建立邏輯卷:</code>

<code>    </code><code>第一:檢視卷組的PE數:vgdisplay | </code><code>grep</code> <code>"PE"</code>

<code>    </code><code>第二:進行建立        lvcreate -l 4730 -n lvname vgname</code>

<code>删除邏輯卷:</code>

<code>    </code><code>umount</code> <code>/dev/vgname/lvname</code>

<code>    </code><code>lvremove </code><code>/dev/vgname/lvname</code>

6.建立檔案系統

<code>mkfs.ext4 </code><code>/dev/vgname/lvname</code>

7.挂載

<code>mount</code> <code>/dev/myvg/mylv</code>         <code>/mnt</code>

<code>(1)設定開機自動挂載vim </code><code>/etc/fstab</code>

<code>挂載裝置   挂載點   檔案系統  挂載選項  dump、</code><code>fsck</code><code>相關選項</code>

<code>/dev/myvg/mylv</code>  <code>/mnt</code> <code>ext3    defaults   0   0</code>

<code>(2)啟動自動挂載:</code><code>mount</code>  <code>-a</code>

三.建立鏡像邏輯卷:

<code>lvcreate -L 100M  -m1 -n lvname vgname </code><code>/dev/sdb1</code> <code>/dev/sdc1</code> <code>/dev/sdb2</code>

<code>-m1:隻生成一個單一鏡像,鏡像分别放在</code><code>/dev/sdb1</code><code>和</code><code>/dev/sdc1</code><code>上,鏡像日志放在</code><code>/dev/sdb2</code><code>上.</code>

<code>-n:指定鏡像邏輯卷名</code>

<code>檢視目前lvm中裝置狀态:</code>

<code>    </code><code>lvs -a -o +devices</code>

<code>    </code><code>lvs</code>

四.建立快照卷:(給已有的邏輯卷建立快照卷)

    快照卷提供在特定瞬間的一個裝置虛拟映像,當快照開始時,它複制一份對目前資料區域的改變,由于它優先執行這些改變,是以它可以重構目前裝置的狀态。

<code>lvcreate -L 50M   -n   mylv-snap   -s   -p  r    </code><code>/dev/myvg/mylv</code>    <code>#建立快照卷</code>

<code>(在同一卷組中。)</code>

<code>-L:指定快照卷的大小</code>

<code>-s:建立快照卷</code>

<code>-n:指定快照名</code>

<code>-p:指定快照卷的類型,預設為rw</code>

<code>mount</code> <code>/dev/myvg/mylv</code><code>#臨時挂載</code>

<code>移除快照卷:lvremove   </code><code>/dev/myvg/mylv-snap</code>

<code>恢複快照卷:lvconvert --merge </code><code>/dev/myvg/mylv-snap</code>

五.擴充邏輯卷:

<code>建立實體卷:pvcreate </code><code>/dev/sdb</code>

<code>擴充卷組:vgextend vg_name   </code><code>/dev/sdb</code> 

<code>1.首先確定卷組中,有足夠的空間</code>

<code>    </code><code>vgs   或者  vgdisplay</code>

<code>        </code> 

<code>2. lvextend 擴充邏輯卷的實體邊界</code>

<code>lvextend -L 12G </code><code>/dev/vgname/lvname</code>   <code>(擴充到12G)</code>

<code>lvextend -L +1G </code><code>/dev/vgname/lvname</code>    <code>(增加1G)</code>

<code>lvextend -l +(塊個數) </code><code>/dev/vgname/lvname</code>

<code>3.resize2fs  擴充邏輯卷的邏輯邊界</code>

<code>  </code><code>resize2fs </code><code>/PATH/TO/LV</code> <code>5G  擴充邏輯邊界到5G,該值不能超過實體邊界</code>

<code>         </code><code>resize2fs -p </code><code>/PATH/TO/LV</code> <code>:-p表示擴充邏輯邊界跟實體邊界一樣大。</code>

<code>###若之前建立好檔案系統,則要擴充檔案系統:resize2fs  /dev/vgname/lvname</code>

<code>#### fsadm resize /dev/vgname/lvname</code>

<code>4.重新檢視檔案系統大小</code>

<code>df</code> <code>-h</code>

resize2fs:調整ext檔案系統的空間大小

 搭配邏輯卷lv使用方法:resize2fs /PATH/TO/LV_NAME 3G  調整LV的邏輯邊界大小為3G

六.縮減邏輯卷lv:

<code>注意:</code>

<code>    </code><code>1、不能線上縮減,得先解除安裝;</code>

<code>    </code><code>2、確定縮減後的空間大小依然能存儲原有的所有資料;</code>

<code>    </code><code>3、在縮減之前應該先強行檢查檔案,以確定檔案系統處于一至性狀态;</code>

<code>步驟:</code>

<code>    </code><code>1. 確定縮減後的空間大小依然能存儲原有的所有資料</code>

<code>        </code><code>df</code> <code>-lh  </code>

<code>    </code><code>2. 解除安裝需要縮減的lv</code>

<code>        </code><code>umount</code>  <code>/mnt</code>    

<code>    </code><code>3. 強行檢查檔案系統</code>

<code>        </code><code>e2fsck -f   </code><code>/dev/myvg/mylv</code>

<code>            </code><code>第一步: 檢查inode,塊,和大小</code>

<code>            </code><code>第二步: 檢查目錄結構</code>

<code>            </code><code>第三步: 檢查目錄連接配接性</code>

<code>            </code><code>第四步: Checking reference counts</code>

<code>            </code><code>第五步: 檢查簇概要資訊</code>

<code>    </code><code>4.縮減檔案系統(邏輯邊界)</code>

<code>        </code><code>resize2fs  </code><code>/dev/myvg/mylv</code> <code>2G      </code><code>#調整邏輯卷的邏輯邊界大小為2G    </code>

<code>    </code><code>5.縮減LV(實體邊界)</code>

<code>        </code><code>lvreduce  -L  -1G  </code><code>/dev/myvg/mylv</code>    <code>#縮減1G</code>

<code>        </code><code>lvreduce -L 2G </code><code>/dev/myvg/testlv</code>  <code>對邏輯卷的實體邊界縮減為2G</code>

<code>    </code><code>6. 重新挂載,</code>

<code>        </code><code>mount</code> <code>/dev/myvg/mylv</code>  <code>/mnt</code>

 本文轉自   a8757906   51CTO部落格,原文連結:http://blog.51cto.com/nxyboy/1942848