web-dev-qa-db-ja.com

LVMを使用した/ homeの移動

現在、小さな96 GB SSDを搭載したマシンにUbuntu 16.04サーバーをインストールしています。サーバー上のすべてのユーザーに十分なスペースではなくなったため、1 TBのHDDを追加し、/homeフォルダーをこの1 TBのドライブの新しいパーティションに明示的に移動します。

もともと、私は here という指示を使用してこれを行うことを計画していました。しかし、システムを詳しく調べると、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ボリュームグループに追加する必要があります( this answer の手順2〜3のように)。しかし、この後どうすればよいかわかりません- ステップ4-5 で続行する必要がありますか?または、/homeだけを明示的に1 TB HDDに移動し、/をSSDに残す別の方法はありますか?

2
tonysdg

あなたが望むことを行うにはかなりの方法がありますが、私がお勧めする方法は次のとおりです。

  1. 新しいディスクをパーティション分割します。 1つの大きなLVMパーティションにすることも、他の目的のために1つ以上の非LVMパーティションを確保することもできます。必要に応じてLVM構成から1つ以上を削除できるように、複数のLVMパーティション(別名物理ボリューム、またはPV)を作成することがあります。あなたが参照するLVMの回答に示されているように、パーティションなしでディスク上にPVデータ構造を直接置くことをお勧めしますnotこれは合法ですが、ハードディスクは通常パーティション化されているため、混乱を招く可能性があります。
  2. Sudo pvcreate /dev/sdb1のように、pvcreateコマンドを使用してLVMで使用するPVを準備します。
  3. Sudo vgextend ubuntu--vg /dev/sdb1のように、vgextendを使用して、既存のボリュームグループ(VG)に新しいPVを追加します。
  4. Sudo pvdisplayと入力して、サイズを含むPVの統計を表示します。
  5. Sudo lvcreate -L 900G -n home ubuntu--vg /dev/sdb1のように、lvcreateを使用して新しい論理ボリューム(LV)を作成します。サイズを設定できる構文(-Lを使用)と、LVが作成されるPV(/dev/sdb1)を指定したことに注意してください。
  6. Sudo pvdisplayを再度入力して、適切なサイズのLVを作成したことを確認します。そうでない場合は、lvresizeを使用してサイズを変更するか、lvremoveを使用して削除してから再試行してください。
  7. Sudo mkfs -t ext4 /dev/mapper/ubuntu--vg-homeのように、LVにファイルシステムを作成します。
  8. Sudo mount /dev/mapper/ubuntu--vg-home /mntのように、新しいLVを便利な場所にマウントします。
  9. /homeディレクトリをtarcprsync、または任意のツールでコピーします。
  10. /etc/fstabを編集して、新しいLVを/homeにマウントします。
  11. 現在の/homeの名前を他の名前(たとえば、/home-orig)に変更し、マウントポイントとして機能する新しい空の/homeディレクトリを作成します。
  12. 再起動し、それが機能することを願っています。
  13. すべてがよさそうであれば、古い/home-origディレクトリを削除します。

手順8〜11は、 参照するWikiページ で説明されている手順の同等の手順と非常に似ているため、これらの手順の詳細を説明しました。

私は何度もこのようなことを自分で行ってきましたが、示したコマンドの例は関連するマニュアルページの読みに基づいているため、詳細を逃した可能性があることに注意してください。マニュアルページを確認し、エラーが発生した場合は、何が問題なのかを見つけたら調整してください。また、UbuntuのデフォルトのLVMネーミングがわかりにくいので、その詳細を誤って解釈した可能性があり、調整する必要があるかもしれません。

これが完了すると、SSDのPVに未使用のスペースができます。ルート(/)LVをこのスペースに展開し、/home LVを展開して両方のディスクにまたがり、特別な目的のために別のLVを作成できます。

この手順の変形として、現在の/home LVをそのままにして、新しいディスクに新しいLVを作成し、新しいLVをスピルオーバースペースとして使用し始める場合があります。コンピューターはマルチユーザーサーバーであるため、これは厄介かもしれませんが、これを行う理由があるかもしれません-たとえば、1人または2人のユーザーがディスクスペースの大部分を消費している場合は、移動できますホームスペースだけを新しいスペースに配置するか、新しいスペースにディレクトリを付けて(アクセスを容易にするマウントポイントまたはシンボリックリンクを使用して)、大きなファイルを新しいスペースに移動するように指示します。このアプローチには、他のユーザーに悪影響を与えないという利点があります。これは、新しいハードディスクストレージスペースが古いSSDストレージスペースよりも著しく遅い可能性が高いためです。

3
Rod Smith

新しいドライブをLVMに追加して、システムがすべてを1つのドライブとして扱うことも、2つ目のドライブとして追加することもできます。 2番目の方法では、新しいドライブを/ home専用にすることができます。

最初にドライブをシステムに追加してから、好みのファイルシステムでフォーマットします。UUIDを書き留めてから、/ homeから新しいドライブにすべてを移動します。/homeは、新しいドライブをそこにマウントするために空でなければなりません。

次に/ etc/fstabファイルを編集します。次の行を追加します。

UUID =(前述)/ home(使用するファイルシステム)デフォルト0 2

注:デバイス名を使用できますが、UUIDにより、デバイス名が変更された場合に正しいドライブが確実にマウントされます。

保存して再起動します。

0
ravery