
我們的公司標準是 CentOS(它似乎更喜歡 LVM),而我主要來自非 LVM 背景,所以我正在解決這個問題的新領域。
我繼承了一台舊機器作為日誌伺服器,並且必須重新安裝 CentOS。由於主機板上的 EHCI 問題(透過正常安裝 DVD 或透過 LiveCD GUI 安裝),我能找到的唯一可以安裝 CentOS 6.3 的方法是 LiveCD 文字安裝。 LiveCD 文字安裝不允許我在磁碟上進行自己的分割區設定;它只安裝 LVM 並為日誌伺服器提供了錯誤的空間分配...
[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[mpenning@someHost ~]$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
50397 2167 47719 5% /
tmpfs 1850 0 1850 0% /dev/shm
/dev/md127p1 485 65 395 15% /boot
/dev/mapper/vg_livecd-lv_home
227001 188 215283 1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
--- Volume group ---
VG Name vg_livecd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 278.96 GiB
PE Size 4.00 MiB
Total PE 71415
Alloc PE / Size 71415 / 278.96 GiB
Free PE / Size 0 / 0
VG UUID 8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU
[mpenning@someHost ~]$
兩個問題:
- 如果我需要增加到
/
257398 個 1-M 區塊並減少/home
到 20000 個 1-M 區塊,我可以在不重新啟動的情況下執行此操作嗎? - 如果我想新增專用
/var
分割區,在不完全重新安裝的情況下應該如何操作?
答案1
如果我需要將/ 增加到257398 個1-M 區塊,並將/home 減少到20000 個1-M 區塊,我可以在不重新啟動的情況下執行此操作嗎?序列是什麼?
您大約有 280GB 的可用空間,其中 50GB 已分配給“/”,230GB 已分配給/home
。因為這代表了您所有的可用空間,所以您必須先釋放一些空間。以下是一些選項:
如果您尚未在 中放置任何數據/home
,最簡單的方法是丟棄現有檔案系統並以適當的大小重新建立它:
解除安裝
/home
:# umount /home
將邏輯磁碟區 (LV) 的大小減少到 20GB:
# lvreduce -L 20G /dev/vg_livecd/lv_home
重新建立
/home
檔案系統:# mke2fs -j -m0 /dev/vg_livecd/lv_home
並重新安裝
/home
:# mount /home
有可能收縮 /home
,而不是丟棄它,但這可能有點棘手:
解除安裝
/home
:# umount /home
fsck
文件系統。這可能是下一步所需要的:# fsck /dev/vg_livecd/lv_home
調整檔案系統的大小:
# resize2fs /dev/vg_livecd/lv_home 19G
降低LV:
# lvreduce -L 20G /dev/vg_livecd/lv_home
您會注意到,我對檔案系統的縮減比 LV 多了一點;這是因為我永遠不記得他們是否以同樣的方式計算事物,所以我嘗試留出一點迴旋的空間。
無論哪種情況,此時您的捲組中都有大約 210GB 的可用空間。現在您可以增加根檔案系統的大小:
增加根 LV 的大小:
# lvresize -L260G /dev/vg_livecd/lv_root
增加檔案系統的大小:
# resize2fs /dev/vg_livecd/lv_root
請注意,由於我在此答案中使用的捨入,您可能需要使用略小於 260G 的數字。另外,最新版本的 LVM 實用程式包括為您調整檔案系統大小的功能,但在這些選項可用之前我就一直在這樣做......所以我不能聲稱確切地知道它們是如何操作的。
如果我想新增專用的 /var 分割區,在不完全重新安裝的情況下應該如何操作?
首先,您可能希望在單一使用者模式下執行此操作,否則正在運行的進程可能會開啟文件,/var
從而難以替換。話說回來...
您將再次需要可用空間。如果您沒有在上一個步驟中用完所有可用空間,而是留下了幾 GB 可用空間,則可以執行以下操作:
建立新的邏輯磁碟區:
# lvcreate -n lv_var -L 10G /dev/vg0
建立一個新的檔案系統:
# mke2fs -j -m0 /dev/vg_livecd/lv_var
編輯以透過新增以下行
/etc/fstab
來安裝新的 LV :/var
/dev/vg_livcde/lv_var /var ext4 defaults 1 2
但先不要安裝它!
將新檔案系統掛載到方便的地方:
# mount /dev/vg_livecd/lv_var /mnt
複製以下內容
/var
:# rsync -a /var/ /mnt/
重新命名
/var
並/var.old
建立一個新目錄:# mv /var /var.old # mkdir /var
將您的新 LV 安裝在
/var
:# 卸載 /mnt # 掛載 /var
並繼續啟動。當您滿意一切正常後,您可以刪除
/var.old
.
答案2
考慮到:
- VG名字好醜
- 您的用例的不良空間分配以及 larsks 詳細說明的過程的負擔
- 事實上,如果您必須重新安裝,您必須再次執行所有這些操作
AFAIC,我會嘗試透過 netinstall/kickstart 以可重現的方式一次性獲得所需的配置。
我的2克拉