linux磁盤 分區 物理卷 卷組 邏輯卷 文件系統加載點操作案例


轉自:truemylife.linux磁盤 分區 物理卷 卷組 邏輯卷 文件系統加載點操作案例

 

基本概念:

磁盤、分區、物理卷【物理部分】

卷組【中間部分】

邏輯卷、文件系統【虛擬化后可控制部分】

 

磁盤信息查看

fdisk -l

SATA磁盤,使用fdisk -l

如果有兩塊磁盤,會顯示

sda
sdb

如果有更多,依次a-z

fdisk -l

除了顯示硬盤分區,同時顯示邏輯卷信息,邏輯卷以vg_開頭

 

查看文件系統及其掛載點

df -h

文件系統可以是邏輯卷,也可以直接為物理分區

/dev/mapper/vg_hxserver-lv_root     50G   23G   25G  49% /

tmpfs                               7.8G     0  7.8G   0% /dev/shm

/dev/sda1                           485M   37M  423M   8% /boot

/dev/mapper/vg_hxserver-lv_home     218G  233M  207G   1% /home

以上/dv/sda1是物理分區,vg_是邏輯卷,tmpfs某設備名稱

cat /etc/fstab看到更多的設備掛載信息

但是使用df -h只顯示一部分與存貯相關類型的信息,如ext4、swap、tmpfs

 

以centos6.3安裝為例,安裝完成后會自動

創建一個物理卷 /dev/sda2(屬於卷組vg_hostname) pvdispaly 可以查看物理卷

創建一個卷組 /vg_hostname(hostname是機器名) vgdisplay可以查看卷組

創建三個邏輯卷

      /dev/vg_hxserver/lv_root

      /dev/vg_hxserver/lv_home

      /dev/vg_hxserver/lv_swap

以上部分是從系統默認安裝后能查看到的信息

 

案例1:新增磁盤並把新磁盤虛擬化成邏輯卷,把文件系統/home掛載到這個新邏輯卷。

 

1、fdisk -l

可以看到新磁盤/dev/sdb(如果之前只有sda)

 

2、fdisk /dev/sdb

   進入fdisk操作界面

   進入fdisk操作界面,這里涉及到linux分區相關知識見http://www.jb51.net/LINUXjishu/57192.html

   總結性的一句話:主分區不超出4個,也可以分成1-3個主分區加1個擴展分區。擴展分區本身是不可用的,

   需要划分成若干邏輯分區后使用。分區還是需要合理,以免剩余出磁盤被浪費。

   這里創建一個最簡單的Linux LVM類型的主分區

   command:n

   p

   e

   鍵入p

   一直按回車,就創建出整個磁盤空間的主分區

   鍵入t

   輸入8e即對應的Linux LVM類型的物理卷

   鍵入w退出

   新建分區完成

   fdisk -l

   可以看到新建分區sdb1

   

3、pvdisplay查看當前的物理卷

   把分區sdb1建成物理卷

   pvcreate /dev/sdb1【物理卷名】 /dev/sdb1【分區路徑】

   pvdisplay 看到/dev/sdb1物理卷還不屬於任務卷組

   vgs或vgdisplay 查看已創建的卷組,如果要新建卷組使用vgcreate

   把新建的物理分區,分配到卷組/dev/vg_dbcentos6

   vgextend /dev/vg_dbcentos6 /dev/sdb1

   vgs可以看到vg_dbcentos63擴展了容量,VFreee是剩下可用容量,如果顯示4.00G,

      接下來創建邏輯卷時,可輸入4G,不能超出,當然也不要浪費掉。

   lvcreate -L 4G -n lv_home vg_dbcentos6

   lvs或lsdisplay或fdisk -l都能看到新創建的lv_home

   需要注意的是,這里有兩個規則一是取名lv_home,會自動生成邏輯卷的路徑為

   /dev/vg_dbcentos6/lv_home

   生成Disk設備映射/dev/mapper/vg_dbcentos6-lv_home【文件系統的掛載點】

   cat /etc/fstab 可以看到當前文件系統格式,有ext3、ext4等,比方說查看到文件系統是ext4

   接下來格式花文件系統

   mkfs.ext4 /dev/mapper/vg_dbcentos6-lv_home

   掛載文件系統

   mount /dev/mapper/vg_dbcentos6-lv_home /home

   查看文件系統

   df【可以看到多出了/home掛載點】

   機器啟動后能自動掛載

   vi /etc/fstab

   fstab共6列,第1列表示設備 第2列表示掛載點 第3列表示設備類型 第4列表示參數 第5列參數表示隔幾天

   備份 第6列表示啟動時檢測優先級別

   reboot 看是否自動掛載

   

案例2:centos6.3默認安裝,/home的掛載設備對應的邏輯卷非常大,但是/掛載的邏輯卷空間較小,需要減小/home邏輯卷,加大/對應的邏輯卷。

   umount /home【首先必須卸下掛載點,umount時相關設備必須是空閑的,但是像/及/root有些系統服務無法被 終止,也就無法umount,因此像/ /root這些掛載點最好安裝的時候最好就有所規划,但是我們可以讓他擴大還是沒有問題】

   在umount過程中如果有設備占用情況可使用

   fuser -m -k /home終止相關進程,再次umount /home成功

   df 看不到 /home掛載點

   必須先檢測設備映射

   e2fsck -f /dev/mapper/vg_dbcentos6-lv_home 

   減小/home大小,原有4G,減小到1G

   resize2fs /dev/mapper/vg_dbcentos6-lv_home 1G

   重新掛載

   mount /dev/mapper/vg_dbcentos6-lv_home /home

   df -h 看到/home只剩1G了

   以上只是減少了文件設備的大小,還要進一步減小對應邏輯卷大小

   lvresize -L 1G /dev/mapper/vg_dbcentos6-lv_home【此過程會提示可能丟數據,如果有必要,請先備份

   /home下數據在做操作】

   lvresize -L +3GM /dev/mapper/vg_dbcentos6-lv_root【lv_root邏輯卷新增3G】

   resize2fs /dev/mapper/vg_dbcentos6-lv_root 【這個命令不帶參數,表示把多出來的容量都加到當前文件系統】

   df -h【看到容量增加了】

   總結一下案例2的過程,先umount、接下來efsck -f、接下來resize2fs要減小的文件系統、mount文件系統、

   lvresize要減小的邏輯卷、lvresize要增大的邏輯卷、resize2fs要增大的文件系統。

   

菜鳥,直接拔下新增磁盤引發的錯誤

    新增磁盤不會有系統文件,因此不致於系統無法啟動

    1、如果新增的磁盤,通過分區、物理卷、加到卷組、邏輯卷后,如果新的邏輯卷被加到lv_root,

    也就是root邏輯卷后。如果不事先做移除命令,事后再想移除會比較麻煩,甚至無法移除這些unknown device

    2、如果新增邏輯卷有自動掛載點,也需要刪除掛載點后才能拔下硬盤,否則啟動后會提示使用root以安全模式進入

    

    那么這兩個問題分別怎么解決呢?

    第2個問題相對簡單,以root進入后

    mount -o remount,rw /【這個命令讓root可以修改/etc/fstab,否則無法修改】

    vi /etc/fstab 刪除已經拔掉磁盤相關的掛載點信息

    reboot【重起后能正常進入】

    

    第一個問題

    方法一、就是再次把磁盤插回去,然后把對應的邏輯卷刪除、把物理卷從卷組里刪除並刪除物理卷

    方法二、如果找不回對應的磁盤,若邏輯卷不是被分配到root,可以直接刪除特理卷,這時用pvdisplay會發現有一個unkonwn device

            可以使用vgreduce --removemissing --force volumname,可以發現unkown device被移降

            但是如果是在lv_root由於存放並正在使用大量的系統級內容和服務,將無法移除此設備,因此用磁盤擴展

            lv_root一定要謹慎,在移除磁盤的時候一定要先移除對應的邏輯卷、物理卷從卷組里移除並移除物理卷。以免產生垃圾unkown

            device。另外即使不是在lv_root下,也有可能說內容被占用,這個可以使用fuser -m -k /mnt/a【/mnt/a指你要移除的邏輯卷

            對應的掛載點的正在運行的服務】,然后umount /mnt/a,最后vgreduce --removemissing --force volumname。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM