(学习总结)鸟哥基础篇第三版:第十五章

来源:互联网 发布:网络电视剧生死征途 编辑:程序博客网 时间:2024/06/05 18:33

第十五章、磁碟配額(Quota)與進階檔案系統管理

15.1 磁碟配額 (Quota) 的應用與實作

15.1.1 什麼是 Quota:一般用途, 限制, 規範(inode/block, soft/hard, grace time)

1.        Quota 的一般用途

quota 比較常使用的幾個情況是:

  • 針對 WWW server ,例如:每個人的網頁空間的容量限制!
  • 針對 mail server,例如:每個人的郵件空間限制。
  • 針對 file server,例如:每個人最大的可用網路硬碟空間 (教學環境中最常見!)

上頭講的是針對網路服務的設計,如果是針對 Linux 系統主機上面的設定那麼使用的方向有底下這一些:

  • 限制某一群組所能使用的最大磁碟配額 (使用群組限制):
    你可以將你的主機上的使用者分門別類,有點像是目前很流行的付費與免付費會員制的情況, 你比較喜好的那一群的使用配額就可以給高一些!
  • 限制某一使用者的最大磁碟配額 (使用者限制):
    在限制了群組之後,你也可以再繼續針對個人來進行限制,使得同一群組之下還可以有更公平的分配!
  • 以 Link 的方式,來使郵件可以作為限制的配額 (更改 /var/spool/mail 這個路徑):
    如果是分為付費與免付費會員的『郵件主機系統』,是否需要重新再規劃一個硬碟呢? 也不需要啦!直接使用 Link 的方式指向 /home (或者其他已經做好的 quota 磁碟) 就可以啦! 這通常是用在原本磁碟分割的規劃不好,但是卻又不想要更動原有主機架構的情況中啊!

2.        Quota 的使用限制

雖然 quota 很好用,但是使用上還是有些限制要先瞭解的:

  • 僅能針對整個 filesystem:
    quota 實際在運作的時候,是針對『整個 filesystem』進行限制的, 例如:如果你的 /dev/sda5 是掛載在 /home 底下,那麼在 /home 底下的所有目錄都會受到限制!
  • 核心必須支援 quota :
    Linux 核心必須有支援 quota 這個功能才行:如果你是使用 CentOS 5.x 的預設核心, 嘿嘿!那恭喜你了,你的系統已經預設有支援 quota 這個功能囉!如果你是自行編譯核心的, 那麼請特別留意你是否已經『真的』開啟了 quota 這個功能?否則底下的功夫將全部都視為『白工』。
  • Quota 的記錄檔:
    目前新版的 Linux distributions 使用的是 Kernel 2.6.xx 的核心版本,這個核心版本支援新的 quota 模組,使用的預設檔案 (aquota.user, aquota.group )將不同於舊版本的 quota.user, quota.group ! (多了一個 a 呦!) 而由舊版本的 quota 可以藉由 convertquota 這個程式來轉換呢!
  • 只對一般身份使用者有效:
    這就有趣了!並不是所有在 Linux 上面的帳號都可以設定 quota 呢,例如 root 就不能設定 quota , 因為整個系統所有的資料幾乎都是他的啊! ^_^

3.        Quota 的規範設定項目

容量限制或檔案數量限制 (block 或 inode):

柔性勸導與硬性規定 (soft/hard):

會倒數計時的寬限時間 (gracetime):一般預設的寬限時間為七天,如果七天內你都不進行任何磁碟管理,那麼 soft 限制值會即刻取代 hard限值來作為 quota 的限制。

15.1.3 實作 Quota 流程-1:檔案系統支援(/etc/fstab, /etc/mtab)

如果只是想要在這次開機中實驗 Quota ,那麼可以使用如下的方式來手動加入 quota 的支援:

[root@www ~]# mount -o remount,usrquota,grpquota /home

[root@www ~]# mount | grep home

/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)

# 重點就在於 usrquota, grpquota !注意寫法!

不過手動掛載的資料在下次重新掛載就會消失,因此最好寫入設定檔中啊!在鳥哥這部主機的案例中,我可以直接修改 /etc/fstab 成為底下這個樣子:

[root@www ~]# vi /etc/fstab

LABEL=/home   /home  ext3   defaults,usrquota,grpquota  1 2

# 其他項目鳥哥並沒有列出來!重點在於第四欄位!於 default 後面加上兩個參數!

 

[root@www ~]# umount /home

[root@www ~]# mount -a

[root@www ~]# mount | grep home

/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)

15.1.4 實作 Quota 流程-2:建立 quota 記錄檔(quotacheck)

Quota 是透過分析整個檔案系統中,每個使用者(群組)擁有的檔案總數與總容量,再將這些資料記錄在該檔案系統的最頂層目錄,然後在該記錄檔中再使用每個帳號(或群組)的限制值去規範磁碟使用量。

1.        quotacheck :掃瞄檔案系統並建立Quota 的記錄檔

[root@www ~]# quotacheck [-avugfM] [/mount_point]

選項與參數:

-a  :掃瞄所有在 /etc/mtab 內,含有 quota 支援的 filesystem,加上此參數後,

      /mount_point 可不必寫,因為掃瞄所有的 filesystem 了嘛!

-u  :針對使用者掃瞄檔案與目錄的使用情況,會建立 aquota.user

-g  :針對群組掃瞄檔案與目錄的使用情況,會建立 aquota.group

-v  :顯示掃瞄過程的資訊;

-f  :強制掃瞄檔案系統,並寫入新的 quota 設定檔 (危險)

-M  :強制以讀寫的方式掃瞄檔案系統,只有在特殊情況下才會使用。

quotacheck 的選項你只要記得『 -avug 』一起下達即可!那個 -f與 -M 是在檔案系統可能已經啟動 quota 了,但是你還想要重新掃瞄檔案系統時,系統會要求你加入那兩個選項啦 (擔心有其他人已經使用 quota 中)!平時沒必要不要加上那兩個項目。好了,那就讓我們來處理我們的任務吧!

# 針對整個系統含有 usrquota, grpquota 參數的檔案系統進行 quotacheck 掃瞄

[root@www ~]# quotacheck -avug

quotacheck: Scanning /dev/hda3 [/home] quotacheck: Cannot stat old user quota

file: No such file or directory <==有找到檔案系統,但尚未製作記錄檔!

quotacheck: Cannot stat old group quota file: No such file or directory

quotacheck: Cannot stat old user quota file: No such file or directory

quotacheck: Cannot stat old group quota file: No such file or directory

done  <==上面三個錯誤只是說明記錄檔尚未建立而已,可以忽略不理!

quotacheck: Checked 130 directories and 107 files <==實際搜尋結果

quotacheck: Old file not found.

quotacheck: Old file not found.

# 若執行這個指令卻出現如下的錯誤訊息,表示你沒有任何檔案系統有啟動 quota 支援!

# quotacheck: Can't find filesystem to check or filesystem not mounted with

# quota option.

 

[root@www ~]# ll -d /home/a*

-rw------- 1 root root 8192 Mar  6 11:58 /home/aquota.group

-rw------- 1 root root 9216 Mar  6 11:58 /home/aquota.user

# 在鳥哥的案例中,/home 獨立的檔案系統,因此搜尋結果會將兩個記錄檔放在

# /home 底下。這兩個檔案就是 Quota 最重要的資訊了!

這個指令只要進行到這裡就夠了,不要反覆的進行!因為等一下我們會啟動 quota 功能,若啟動後你還要進行 quotacheck ,系統會擔心破壞原有的記錄檔,所以會產生一些錯誤訊息警告你。如果你確定沒有任何人在使用 quota 時,可以強制重新進行 quotacheck 的動作。強制執行的情況可以使用如下的選項功能:

# 如果因為特殊需求需要強制掃瞄已掛載的檔案系統時

[root@www ~]# quotacheck -avug -mf

quotacheck: Scanning /dev/hda3 [/home] done

quotacheck: Checked 130 directories and 109 files

# 資料要簡潔很多!因為有記錄檔存在嘛!所以警告訊息不會出現!

15.1.5 實作 Quota 流程-3:啟動、關閉與限制值設定(quotaon, quotaoff, edquota)

1.        quotaon :啟動 quota 的服務

[root@www ~]# quotaon [-avug]

[root@www ~]# quotaon [-vug] [/mount_point]

選項與參數:

-u  :針對使用者啟動 quota (aquota.user)

-g  :針對群組啟動 quota (aquota.group)

-v  :顯示啟動過程的相關訊息;

-a  :根據 /etc/mtab 內的 filesystem 設定啟動有關的 quota ,若不加 -a 的話,

      則後面就需要加上特定的那個 filesystem 喔!

 

# 由於我們要啟動 user/group 的 quota ,所以使用底下的語法即可

[root@www ~]# quotaon -auvg

/dev/hda3 [/home]: group quotas turned on

/dev/hda3 [/home]: user quotas turned on

 

# 特殊用法,假如你的啟動 /var 的 quota 支援,那麼僅啟動 user quota 時

[root@www ~]# quotaon -uv /var

這個『 quotaon -auvg 』的指令幾乎只在第一次啟動 quota 時才需要進行!因為下次等你重新啟動系統時,系統的 /etc/rc.d/rc.sysinit 這個初始化腳本就會自動的下達這個指令了!因此你只要在這次實例中進行一次即可,未來都不需要自行啟動 quota ,因為 CentOS 5.x 系統會自動幫你搞定他!

2.        quotaoff :關閉 quota 的服務

[root@www ~]# quotaoff [-a]

[root@www ~]# quotaoff [-ug] [/mount_point]

選項與參數:

-a  :全部的 filesystem 的 quota 都關閉 (根據 /etc/mtab)

-u  :僅針對後面接的那個 /mount_point 關閉 user quota

-g  :僅針對後面接的那個 /mount_point 關閉 group quota

3.        edquota :編輯帳號/群組的限值與寬限時間

edquota 是 edit quota 的縮寫,所以就是用來編輯使用者或者是群組限額的指令囉。

[root@www ~]# edquota [-u username] [-g groupname]

[root@www ~]# edquota -t  <==修改寬限時間

[root@www ~]# edquota -p 範本帳號 -u 新帳號

選項與參數:

-u  :後面接帳號名稱。可以進入 quota 的編輯畫面 (vi) 去設定 username 的限制值;

-g  :後面接群組名稱。可以進入 quota 的編輯畫面 (vi) 去設定 groupname 的限制值;

-t  :可以修改寬限時間。

-p  :複製範本。那個 範本帳號 為已經存在並且已設定好 quota 的使用者,

      意義為『將 範本帳號 這個人的 quota 限制值複製給 新帳號 』!

好了,先讓我們來看看當進入 myquota1 的限額設定時,會出現什麼畫面:

範例一:設定 dmtsai 這個使用者的 quota 限制值

[root@www ~]# edquota -u myquota1

Disk quotas for user myquota1 (uid 710):

  Filesystem    blocks  soft   hard  inodes  soft  hard

  /dev/hda3         80     0      0      10     0     0

磁碟容量 (blocks):這個數值是 quota 自己算出來的,單位為 Kbytes,請不要更動他;

檔案數量 (inodes):這是 quota 自己算出來的,單位為個數,請不要更動他;

Disk quotas for user myquota1 (uid 710):

  Filesystem    blocks    soft    hard  inodes  soft  hard

  /dev/hda3         80  250000  300000      10     0     0

# 鳥哥使用 1000 去近似 1024 的倍數!比較好算啦!然後就可以儲存後離開囉!

 

# 將 myquota1 的限制值複製給其他四個帳號

[root@www ~]# edquota -p myquota1 -u myquota2

[root@www ~]# edquota -p myquota1 -u myquota3

[root@www ~]# edquota -p myquota1 -u myquota4

[root@www ~]# edquota -p myquota1 -u myquota5

 

[root@www ~]# edquota -g myquotagrp

Disk quotas for group myquotagrp (gid 713):

  Filesystem    blocks    soft     hard  inodes  soft  hard

  /dev/hda3        400  900000  1000000      50     0     0

# 記得,單位為 KB 喔!

 

# 寬限時間原本為 7 天,將他改成 14 天吧!

[root@www ~]# edquota -t

Grace period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

  Filesystem         Block grace period     Inode grace period

  /dev/hda3                14days                  7days

# 原本是 7days ,我們將他給改為 14days 喔!

15.1.6 實作 Quota 流程-4:Quota 限制值的報表(quota, repquota)

quota 的報表主要有兩種模式,一種是針對每個個人或群組的 quota 指令,一個是針對整個檔案系統的 repquota 指令。我們先從較簡單的 quota 來介紹!你也可以順道看看你的設定值對不對啊!

1.        quota :單一用戶的 quota 報表(看指定的用户和群组)

[root@www ~]# quota [-uvs] [username]

[root@www ~]# quota [-gvs] [groupname]

選項與參數:

-u  :後面可以接 username ,表示顯示出該使用者的 quota 限制值。若不接 username

      ,表示顯示出執行者的 quota 限制值。

-g  :後面可接 groupname ,表示顯示出該群組的 quota 限制值。

-v  :顯示每個用戶在 filesystem 的 quota 值;

-s  :使用 1024 為倍數來指定單位,會顯示如 M 之類的單位!

 

# 直接使用 quota 去顯示出 myquota1 與 myquota2 的限額

[root@www ~]# quota -uvs myquota1 myquota2

Disk quotas for user myquota1 (uid 710):

   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace

    /dev/hda3      80   245M   293M                 10       0       0

Disk quotas for user myquota2 (uid 711):

   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace

    /dev/hda3      80   245M   293M                 10       0       0

# 這個指令顯示出來的資料跟 edquota 幾乎是一模一樣的!只是多了個 grace 項目。

# 你會發現 grace 底下沒有任何資料,這是因為我們的使用量 (80) 尚未超過 soft

 

# 顯示出 myquotagrp 的群組限額

[root@www ~]# quota -gvs myquotagrp

Disk quotas for group myquotagrp (gid 713):

   Filesystem  blocks  quota  limit   grace   files   quota   limit   grace

    /dev/hda3     400   879M   977M                50       0       0

 

2.        repquota :針對檔案系統的限額做報表(看所有的用户和群组)

[root@www ~]# repquota -a [-vugs]

選項與參數:

-a  :直接到 /etc/mtab 搜尋具有 quota 標誌的 filesystem ,並報告 quota 的結果;

-v  :輸出的資料將含有 filesystem 相關的細部資訊;

-u  :顯示出使用者的 quota 限值 (這是預設值);

-g  :顯示出個別群組的 quota 限值。

-s  :使用 M, G 為單位顯示結果

 

# 查詢本案例中所有使用者的 quota 限制情況:

[root@www ~]# repquota -auvs

*** Report for user quotas on device /dev/hda3    <==針對 /dev/hda3

Block grace time: 14days; Inode grace time: 7days <==block 寬限時間為 14 天

                        Block limits                File limits

User            used    soft    hard  grace    used  soft  hard  grace

----------------------------------------------------------------------

root      --    651M       0       0              5     0     0

myquota1  --      80    245M    293M             10     0     0

myquota2  --      80    245M    293M             10     0     0

myquota3  --      80    245M    293M             10     0     0

myquota4  --      80    245M    293M             10     0     0

myquota5  --      80    245M    293M             10     0     0

 

Statistics:  <==這是所謂的系統相關資訊,用 -v 才會顯示

Total blocks: 9

Data blocks: 2

Entries: 22

Used average: 11.000000

15.1.7 實作 Quota 流程-5:測試與管理 (測試,warnquota, setquota)

1.        warnquota :對超過限額者發出警告信

他可以依據/etc/warnquota.conf 的設定,然後找出目前系統上面 quota 用量超過 soft (就是有 grace time 出現的那些傢伙) 的帳號,透過 email 的功能將警告信件發送到使用者的電子郵件信箱。 warnquota 並不會自動執行,所以我們需要手動去執行他。單純執行『 warnquota 』之後,他會發送兩封信出去,一封給 myquota1 一封給 root !

執行 warnquota 可能也不會產生任何訊息以及信件,因為只有當使用者的 quota 有超過 soft 時, warnquota 才會發送警告信啦!那麼上表的內容中,包括標題、資訊內容說明、簽名檔等資料放在哪裡呢?剛剛不是講過嗎? /etc/warnquota.conf 啦!

 

2.        setquota :直接於指令中設定quota 限額

如果你想要使用 script 的方法來建立大量的帳號,並且所有的帳號都在建立時就給予 quota ,那該如何是好? 其實有兩個方法可以考慮:

  • 先建立一個原始 quota 帳號,再以『 edquota -p old -u new 』寫入 script 中;
  • 直接以 setquota 建立用戶的 quota 設定值。

不同於 edquota 是呼叫 vi 來進行設定,setquota 直接由指令輸入所必須要的各項限制值。

[root@www ~]# setquota [-u|-g] 名稱 block(soft) block(hard) \

>  inode(soft) inode(hard) 檔案系統

 

# 觀察原始的 myquota5 限值,並給予 soft/hard 分別為 100000/200000

[root@www ~]# quota -uv myquota5

Disk quotas for user myquota5 (uid 714):

   Filesystem blocks  quota  limit  grace files  quota  limit  grace

    /dev/hda3     80 250000 300000           10      0      0

 

[root@www ~]# setquota -u myquota5 100000 200000 0 0 /home

 

[root@www ~]# quota -uv myquota5

Disk quotas for user myquota5 (uid 714):

   Filesystem blocks  quota  limit  grace files  quota  limit  grace

    /dev/hda3     80 100000 200000           10      0      0

# 看吧!真的有改變過來!這就是 quota 的簡單腳本設定語法!

15.1.8 不更動既有系統的 Quota 實例

想一想,如果你的主機原先沒有想到要設定成為郵件主機,所以並沒有規劃將郵件信箱所在的 /var/spool/mail/ 目錄獨立成為一個 partition ,然後目前你的主機已經沒有辦法新增或分割出任何新的分割槽了。那我們知道 quota 是針對整個 filesystem 進行設計的,因此,你是否就無法針對 mail 的使用量給予 quota 的限制呢?

此外,如果你想要讓使用者的郵件信箱與家目錄的總體磁碟使用量為固定,那又該如何是好?由於 /home 及 /var/spool/mail 根本不可能是同一個 filesystem (除非是都不分割,使用根目錄,才有可能整合在一起),所以,該如何進行這樣的 quota 限制呢?

其實沒有那麼難啦!既然 quota 是針對整個 filesystem 來進行限制,假設你又已經有 /home 這個獨立的分割槽了,那麼你只要:

·        將 /var/spool/mail 這個目錄完整的移動到 /home 底下;

·        利用 ln -s /home/mail /var/spool/mail 來建立連結資料;

·        將 /home 進行 quota 限額設定

只要這樣的一個小步驟,嘿嘿!您家主機的郵件就有一定的限額囉!當然囉!您也可以依據不同的使用者與群組來設定 quota 然後同樣的以上面的方式來進行 link 的動作!嘿嘿嘿!就有不同的限額針對不同的使用者提出囉!很方便吧! ^_^

Tips:
朋友們需要注意的是,由於目前新的 distributions大多有使用 SELinux的機制,因此你要進行如同上面的目錄搬移時,在許多情況下可能會有使用上的限制喔!或許你得要先暫時關閉 SELinux才能測試,也或許你得要自行修改 SELinux的規則才行喔!

15.3 邏輯捲軸管理員 (Logical Volume Manager)

15.3.4 縮小 LV 容量

上一小節我們談到的是放大容量,現在來談到的是縮小容量喔!假設我們想將 /dev/hda6 抽離出來!那該如何處理啊?就讓上一小節的流程倒轉過來即可啊!我們就直接來玩吧!

# 1. 先找出 /dev/hda6 的容量大小,並嘗試計算檔案系統需縮小到多少

[root@www ~]# pvdisplay

  --- Physical volume ---

  PV Name               /dev/hda6

  VG Name               vbirdvg

  PV Size               1.40 GB / not usable 11.46 MB

  Allocatable           yes (but full)

  PE Size (KByte)       16384

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN

# 從這裡可以看出 /dev/hda6 有多大,而且含有 89 個 PE 的量喔!

# 那如果要使用 resize2fs 時,則總量減去 1.40GB 就對了!

 

[root@www ~]# pvscan

  PV /dev/hda6    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda10   VG vbirdvg   lvm2 [2.80 GB / 0    free]

  Total: 5 [8.36 GB] / in use: 5 [8.36 GB] / in no VG: 0 [0   ]

# 從上面可以發現如果扣除 /dev/hda6 則剩餘容量有:1.39*3+2.8=6.97

 

# 2. 就直接降低檔案系統的容量吧!

[root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing

On-line shrinking from 2191360 to 1766400 not supported.

# 容量好像不能夠寫小數點位數,因此 6.9G 是錯誤的,鳥哥就使用 6900M 了。

# 此外,放大可以線上直接進行,縮小檔案系統似乎無法支援!所以要這樣做:

 

[root@www ~]# umount /mnt/lvm

[root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M

resize2fs 1.39 (29-May-2006)

Please run 'e2fsck -f /dev/vbirdvg/vbirdlv' first.

# 他要我們先進行磁碟檢查!不囉唆!那就直接進行吧!

 

[root@www ~]# e2fsck -f /dev/vbirdvg/vbirdlv

e2fsck 1.39 (29-May-2006)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/vbirdvg/vbirdlv: 2438/1087008 files (0.1% non-contiguous),

 

[root@www ~]# resize2fs /dev/vbirdvg/vbirdlv 6900M

resize2fs 1.39 (29-May-2006)

Resizing the filesystem on /dev/vbirdvg/vbirdlv to 1766400 (4k) blocks.

The filesystem on /dev/vbirdvg/vbirdlv is now 1766400 blocks long.

# 再來 resize2fs 一次就能夠成功了!如上所示啊!

 

[root@www ~]# mount /dev/vbirdvg/vbirdlv /mnt/lvm

[root@www ~]# df /mnt/lvm

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/mapper/vbirdvg-vbirdlv

                       6955584    262632   6410328   4% /mnt/lvm

然後再來就是將 LV 的容量降低!要注意的是,我們想要抽離的是 /dev/hda6,這個 PV 有 89 個 PE (上面的 pvdisplay 查詢到的結果)。所以要這樣進行:

# 3. 降低 LV 的容量,同時我們知道 /dev/hda6 有 89 個 PE

[root@www ~]# lvresize -l -89 /dev/vbirdvg/vbirdlv

  WARNING: Reducing active and open logical volume to 6.97 GB

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vbirdlv? [y/n]: y

  Reducing logical volume vbirdlv to 6.97 GB

  Logical volume vbirdlv successfully resized

# 會有警告訊息!但是我們的實際資料量還是比 6.97G 小,所以就 y 下去吧!

 

[root@www ~]# lvdisplay

  --- Logical volume ---

  LV Name                /dev/vbirdvg/vbirdlv

  VG Name                vbirdvg

  LV UUID                8vFOPG-Jrw0-Runh-ug24-t2j7-i3nA-rPEyq0

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                6.97 GB

  Current LE             446

  Segments               5

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0

很簡單吧!這樣就將 LV 縮小了!接下來就要將 /dev/hda6 移出 vbirdvg 這個 VG 之外囉!我們得要先確定 /dev/hda6 裡面的 PE 完全不被使用後,才能夠將 /dev/hda6 抽離!所以得要這樣進行:

# 4.1 先確認 /dev/hda6 是否將 PE 都移除了!

[root@www ~]# pvdisplay

  --- Physical volume ---

  PV Name               /dev/hda6

  VG Name               vbirdvg

  PV Size               1.40 GB / not usable 11.46 MB

  Allocatable           yes (but full)

  PE Size (KByte)       16384

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID               Z13Jk5-RCls-UJ8B-HzDa-Gesn-atku-rf2biN

....(中間省略)....

 

  --- Physical volume ---

  PV Name               /dev/hda10

  VG Name               vbirdvg

  PV Size               2.80 GB / not usable 6.96 MB

  Allocatable           yes

  PE Size (KByte)       16384

  Total PE              179

  Free PE               89

  Allocated PE          90

  PV UUID               7MfcG7-y9or-0Jmb-H7RO-5Pa5-D3qB-G426Vq

# 搞了老半天,沒有被使用的 PE 竟然在 /dev/hda10 !此時得要搬移 PE 囉!

 

[root@www ~]# pvmove /dev/hda6 /dev/hda10

# pvmove 來源PV 目標PV ,可以將 /dev/hda6 內的 PE 通通移動到 /dev/hda10

# 尚未被使用的 PE 去 (Free PE)。

 

# 4.2 將 /dev/hda6 移出 vbirdvg 中!

[root@www ~]# vgreduce vbirdvg /dev/hda6

  Removed "/dev/hda6" from volume group "vbirdvg"

 

[root@www ~]# pvscan

  PV /dev/hda7    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda8    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda9    VG vbirdvg   lvm2 [1.39 GB / 0    free]

  PV /dev/hda10   VG vbirdvg   lvm2 [2.80 GB / 0    free]

  PV /dev/hda6                 lvm2 [1.40 GB]

  Total: 5 [8.37 GB] / in use: 4 [6.97 GB] / in no VG: 1 [1.40 GB]

 

[root@www ~]# pvremove /dev/hda6

  Labels on physical volume "/dev/hda6" successfully wiped

很有趣吧!這樣你的檔案系統以及實際的 LV 與 VG 通通變小了,而且那個 /dev/hda6 還真的可以拿出來! 可以進行其他的用途啦!非常簡單吧!
0 0
原创粉丝点击