web-dev-qa-db-ja.com

Ubuntu16.04仮想マシン/ XenServerストレージ拡張の問題

まず、私はサーバー管理と仮想化の分野の初心者です。それについていくつかのチュートリアルを確認した後、別のVMからスナップショットを取得してXenServerで作成された仮想マシンのストレージを拡張しようとしました。まず、VMをシャットダウンし、XenCenterを介してストレージを40GBから80GBに拡張しました。次に、VMを開始し、次のコマンドでfdiskを入力します。

Sudo fdisk /dev/xvda

次に、パーティションテーブルを印刷しました。

Device     Boot   Start      End  Sectors  Size Id Type
/dev/xvda1         2048   999423   997376  487M 83 Linux
/dev/xvda2      1001470 83884031 82882562 39.5G  5 Extended
/dev/xvda5      1001472 83884031 82882560 39.5G 8e Linux LVM

どのチュートリアルでも、同様のパーティションテーブルは表示されませんでした。そのため、このテーブルに似た新しいパーティションテーブルを作成しようとしました。最初に5と2を削除し、次に新しい拡張パーティション(2)を作成し、Linuxタイプのパーティション(5)を作成しました。最後に、タイプ5をLinuxLVMに変更しました。最終的なパーティションテーブルは次のようになります。

Device     Boot   Start       End   Sectors  Size Id Type
/dev/xvda1         2048    999423    997376  487M 83 Linux
/dev/xvda2       999424 167772159 166772736 79.5G  5 Extended
/dev/xvda5      1001472 167772159 166770688 79.5G 8e Linux LVM

テーブルを確認した後、テーブルをディスクに書き込み、VMを再起動しました。 VMは問題なく起動しました。Sudo df -hでディスク容量を確認しました。出力は次のとおりです。

Filesystem                       Size  Used Avail Use% Mounted on
udev                              12G     0   12G   0% /dev
tmpfs                            2.4G  8.7M  2.4G   1% /run
/dev/mapper/dbvmviduio--vg-root   35G  1.7G   32G   6% /
tmpfs                             12G     0   12G   0% /dev/shm
tmpfs                            5.0M     0  5.0M   0% /run/lock
tmpfs                             12G     0   12G   0% /sys/fs/cgroup
/dev/xvda1                       472M  101M  347M  23% /boot
tmpfs                            100K     0  100K   0% /run/lxcfs/controllers
tmpfs                            2.4G     0  2.4G   0% /run/user/1000

結局のところ、私はチュートリアルで書かれたようにresize2fsを実行しようとしました。最初は、xvda2またはxvda5でresize2fsを実行することを知りませんでした。両方を試したところ、これらのエラーが発生しました。

Sudo resize2fs /dev/xvda2
resize2fs 1.42.13 (17-May-2015)
resize2fs: Attempt to read block from filesystem resulted in short read while trying to open /dev/xvda2
Couldn't find valid filesystem superblock.


Sudo resize2fs /dev/xvda5
resize2fs 1.42.13 (17-May-2015)
resize2fs: Device or resource busy while trying to open /dev/xvda5
Couldn't find valid filesystem superblock.

パーティションテーブルに問題はありますか?どうすればこれらの問題を克服できますか?

注:これらの問題を解決できなかった場合、Linuxタイプのパーティション(拡張なし)のみを作成しようとしましたが、VMは再起動後に開始されません(この後、スナップショットに戻りました) )。

1
Bilal

どの手順を実行したか正確にはわかりませんが、Linux VMで使用可能なディスクを増やすには、以下の3つのことが必要です。

  • XenCenterで使用可能なディスクサイズをVM)に増やします。
  • VMのパーティションテーブルのVMパーティションのサイズを増やします。
  • VM内のext3ファイルシステムのサイズを拡大します

以下は、特定の例に含まれる手順です。

ステップ1:XenCenterのディスク容量を増やす

あなたはすでにそれをしました。

ステップ2:VMのパーティションテーブルを変更します

次に、fdiskを使用してlinux /パーティションのサイズを増やす必要があるため、VMを起動します。ユーティリティpartedを使用すると、パーティションのサイズを変更したり、パーティションのサイズを変更したり、ファイルシステムデータを移動したりできるようになりますが、partedでは実行中のパーティションを編集できません。この場合、たとえば/ dev/xvda3を編集する必要があるため、これは/パーティションであり、仮想ディスクの最後にあるため、パーティションのサイズを拡張するだけで、移動する必要はありません。実行中VM fdiskを使用して/パーティション(/ dev/xvda3)を増やします。

# fdisk /dev/xvda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/xvda: 12.9 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000928ad

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              26         281     2048000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/xvda3             281        1045     6134784   83  Linux

Command (m for help): d
Partition number (1-4): 3

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (281-1566, default 281): 281
Last cylinder, +cylinders or +size{K,M,G} (281-1566, default 1566): 1566

Command (m for help): p

Disk /dev/xvda: 12.9 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000928ad

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              26         281     2048000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/xvda3             281        1566    10325071   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
# 

ステップ3:VMを再起動します

最後の警告が正確になったので、カーネルがパーティションジオメトリへの変更を取得するために、VMを再度再起動する必要があります。ただし、再起動しても、の使用可能なディスク領域サイズは変更されません。 /パーティション:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda3            5.8G  829M  4.7G  15% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/xvda1            194M   45M  140M  25% /boot

これを修正するには、実行中のVMでresize2fsを実行します。これにより、パーティションのジオメトリとファイルシステムのサイズの違いが自動的に認識され、ファイルシステムが最大サイズに拡張されます。

# resize2fs /dev/xvda3
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvda3 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/xvda3 to 2581267 (4k) blocks.
The filesystem on /dev/xvda3 is now 2581267 blocks long.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda3            9.7G  830M  8.4G   9% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/xvda1            194M   45M  140M  25% /boot
#  

特に感謝しますhttp://www.simonhiggs.com/articles/xenserver-6.2-extending-disk-on-a-linux -vm.html

3
Sachin Singh

Resize2fsを開始する前に、いくつかの追加アクションを実行する必要があります...パーティションのサイズを変更した後、次の手順を実行します。

サイズ変更されたパーティションの物理ボリュームのサイズを変更します。

Sudo lvm pvresize /dev/xvda3

ボリュームグループを再スキャンします。

Sudo lvm vgscan

仮想グループをアクティブ化します。

Sudo lvm vgchange -ay

論理ボリュームを表示する:

Sudo lvdisplay

ルートボリュームのストア名。次のようになります:/ dev/vm-name-vg/root

論理ボリュームのサイズをすべての追加の空き領域に変更します(「/ dev/vm-name-vg/root」を前のコマンドの実際のボリューム名に置き換えることを忘れないでください)。

Sudo lvm lvresize /dev/vm-name-vg/root -l +100%FREE

その後、あなたはすることができます

resize2fs /dev/xvda3

今は動作するはずです。

1
Oleg Golovko

私は自分の道をうまく動かすことができず、自分の道がうまくいかない理由を見つけることができませんでしたが、これのおかげで回避策を見つけました video

  1. シャットダウンしましたVMそしてハードディスクを増やします
  2. 次に、VMを開始し、fdisk /dev/xvdaを実行します
  3. n(パーティション番号4、/ dev/xvda4)を使用して、新しいLinux LVMタイプ、空き領域のあるプライマリパーティションを作成しました
  4. wを作成し、新しいパーティションテーブルを保存しました
  5. VMを再起動しました
  6. 再起動後、pvcreate /dev/xvda4で新しいパーティションを作成します
  7. vgdisplayを実行して、私のVG名(dbvmviduio-vg)を確認しました。
  8. vgextend dbvmviduio-vg /dev/xvda4を実行してdbvmviduio-vgを拡張
  9. lvextend -L+40G /dev/dbvmviduio-vg/rootを実行して音量を上げました
  10. 最後に、resize2fs /dev/dbvmviduio-vg/rootを実行し、df -hを確認しました。
0
Bilal