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ボリュームグループに追加する必要があります(この答え)。しかし、この後どう進めていけばいいのかわかりません。ステップ4-5/home? または、1 TB HDD にのみ明示的に移動し、/SSD に残す別の方法はありますか?

答え1

やりたいことを実現するにはさまざまな方法がありますが、私がお勧めする方法は次のとおりです。

  1. 新しいディスクをパーティション分割します。1つの大きなLVMパーティションにすることも、他の目的のために1つ以上の非LVMパーティションを確保することもできます。私は、将来必要になった場合にLVM構成から1つ以上のパーティションを削除できるように、複数のLVMパーティション(別名物理ボリューム、またはPV)を作成することがあります。ない参照した LVM の回答に示されているように、パーティションなしで PV データ構造をディスク上に直接配置することをお勧めします。これは合法ですが、ハード ディスクは通常パーティション化されているため、混乱を招く可能性があります。
  2. pvcreateのようにコマンドを使用して、 LVM が使用できるように PV を準備しますsudo pvcreate /dev/sdb1
  3. vgextendのように、を使用して新しい PV を既存のボリューム グループ (VG) に追加しますsudo vgextend ubuntu--vg /dev/sdb1
  4. 入力sudo pvdisplayすると、PV のサイズなどの統計情報が表示されます。
  5. lvcreateのように、を使用して新しい論理ボリューム (LV) を作成します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 をスピルオーバー領域として使い始めるという方法があります。コンピュータはマルチユーザー サーバーであるため、これは面倒かもしれませんが、これを行う理由があるかもしれません。たとえば、1 人か 2 人のユーザーがディスク領域の大部分を消費している場合は、そのユーザーのホーム ディレクトリだけを新しい領域に移動するか、新しい領域にディレクトリ (アクセスを容易にするためにマウント ポイントまたはシンボリック リンクを使用) を用意して、大きなファイルを新しい領域に移動するように指示することができます。このアプローチには、新しいハード ディスク ストレージ領域が古い SSD ストレージ領域よりも著しく遅くなる可能性があるため、他のユーザーに悪影響を与えないという利点があります。

答え2

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

まず、ドライブをシステムに追加し、希望するファイル システムでフォーマットします。UUID をメモしてから、すべてを /home から新しいドライブに移動します。新しいドライブをマウントするには、/home が空である必要があります。

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

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

注: デバイス名を使用することもできますが、UUID を使用すると、デバイス名が変更された場合でも正しいドライブがマウントされることが保証されます。

保存して再起動します。

関連情報