使用 LVM 移動 /home

使用 LVM 移動 /home

我目前在一台具有小型 96 GB SSD 的電腦上安裝了 Ubuntu 16.04 Server。對於伺服器上的所有使用者來說,空間不再足夠,因此我想新增一個 1 TB HDD,並將資料夾/home明確地移動到該 1 TB 磁碟機上的新分割區。

最初,我計劃按照說明執行此操作這裡。然而,仔細檢查系統後,我發現 LVM 已啟用:

Filesystem                   Size  Used Avail Use% Mounted on
udev                          63G     0   63G   0% /dev
tmpfs                         13G  9.5M   13G   1% /run
/dev/mapper/ubuntu--vg-root   98G   76G   18G  82% /
tmpfs                         63G     0   63G   0% /dev/shm
tmpfs                        5.0M     0  5.0M   0% /run/lock
tmpfs                         63G     0   63G   0% /sys/fs/cgroup
/dev/sda2                    473M  111M  338M  25% /boot
/dev/sda1                    512M  136K  512M   1% /boot/efi
tmpfs                         13G     0   13G   0% /run/user/1001

根據我到目前為止所讀到的內容,我需要將新磁碟機新增至磁碟區ubuntu-vg組(如步驟 2-3 所示)這個答案)。但我不確定此後該如何繼續——我應該繼續嗎步驟 4-5?或者是否有另一種方法可以明確地僅轉移/home到 1 TB HDD 並保留/在 SSD 上?

答案1

有很多方法可以做你想做的事,但我推薦的方法是:

  1. 對新磁碟進行分割。它可以是一個大的 LVM 分割區,也可以留出一個或多個非 LVM 分割區用於其他目的。我有時會建立多個 LVM 分割區(也稱為實體磁碟區或 PV),以便將來在需要時可以從 LVM 配置中刪除其中一個或多個分割區。請注意,我這樣做不是建議將 PV 資料結構直接放在磁碟上而不進行分割區,如您參考的 LVM 答案中所示。雖然這是合法的,但可能會導致混亂,因為硬碟通常是分區的。
  2. 使用指令準備 PV 以供 LVM 使用pvcreate,如 中所示sudo pvcreate /dev/sdb1
  3. 使用 為現有磁碟區組 (VG) 新增新的 PV vgextend,如 中所示sudo vgextend ubuntu--vg /dev/sdb1
  4. 鍵入sudo pvdisplay以顯示有關 PV 的統計信息,包括其大小。
  5. 使用 來建立新的邏輯磁碟區 (LV) lvcreate,如 所示sudo lvcreate -L 900G -n home ubuntu--vg /dev/sdb1。請注意,我已經指定了一種語法,使您能夠設定大小(通過-L)以及將在其上建立 LV 的 PV ( /dev/sdb1)。
  6. 再次鍵入sudo pvdisplay以驗證您是否建立了大小合適的 LV。如果沒有,您可以使用 調整其大小lvresize或使用 刪除它lvremove,然後重試。
  7. 在 LV 上建立一個檔案系統,如sudo mkfs -t ext4 /dev/mapper/ubuntu--vg-home.
  8. 將新 LV 安裝在方便的地方,例如 中sudo mount /dev/mapper/ubuntu--vg-home /mnt
  9. 使用、、或任何您喜歡的工具複製您的/home目錄。tarcprsync
  10. 編輯/etc/fstab以將新 LV 安裝在/home
  11. 將目前目錄重新命名/home為其他名稱(例如/home-orig)並建立新的空/home目錄作為安裝點。
  12. 重新啟動並希望它能起作用。
  13. 如果一切正常,請刪除舊/home-orig目錄。

步驟 8-11 與中概述的過程中的等效步驟非常相似您引用的維基頁面,所以我已經詳細介紹了這些步驟的細節。

請注意,雖然我自己多次做過此類事情,但我顯示的範例命令是基於我對相關手冊頁的閱讀,因此我可能錯過了一些細節。我建議您查看手冊頁,如果出現錯誤,請在找出問題所在後進行調整。另外,我發現 Ubuntu 的預設 LVM 命名令人困惑,因此我可能誤解了該細節,您可能需要調整。

完成此操作後,SSD 上的 PV 中將有未使用的空間。您可以將根 ( /) LV 擴展到此空間,將/homeLV 擴展到兩個磁碟,為某些特殊目的建立另一個 LV 等。

此過程的變體可能是將目前/homeLV 保留在原處,在新磁碟上建立新 LV,然後開始使用新 LV 作為溢出空間。您注意到您的電腦是多用戶伺服器,因此這可能很尷尬,但可能有這樣做的理由 - 例如,如果只有一兩個用戶消耗了大部分磁碟空間,您可以移動只是將他們的主目錄移動到新空間,或為他們提供新空間上的目錄(使用掛載點或符號鏈接以使訪問更容易)並指示他們將大文件移動到新空間。這種方法的優點是不會對其他使用者產生負面影響,因為新的硬碟儲存空間可能明顯慢於舊的 SSD 儲存空間。

答案2

可以將新驅動器新增至 LVM,以便系統將其全部視為一個驅動器,或者您可以將其新增為第二個驅動器。使用第二種方法,新驅動器可以專用於/home。

首先將磁碟機新增至系統,然後使用您首選的檔案系統進行格式化。 /home 必須為空才能在那裡安裝新磁碟機。

接下來編輯您的 /etc/fstab 檔案。新增行:

UUID=(前面提到)/home(使用的檔案系統)預設值 0 2

注意:您可以使用裝置名稱,但 UUID 可確保在裝置名稱變更時安裝正確的磁碟機。

儲存並重新啟動。

相關內容