Amazon EBSボリュームサイズの拡大[終了]


154

私はAmazonのEC2とEBSサービスにかなり感銘を受けました。EBSボリュームを拡張できるかどうか知りたいと思いました。

例:50 GBのボリュームがあり、スペースが不足し始めた場合、必要に応じて100 GBまで増やすことができますか?



8
すばらしい質問です(+1)。ただし、サーバー障害により適していますか?
Jonik

1
この回答はより最新のものであるため、投票してください:stackoverflow.com/a/15229477/163461
David

1
@Jonik私は完全に同意します。移行できる(そして同意する)場合は、投票してこの質問を再度開き、移行できるようにしてください。これを読んでいるいくつかのmodが同じことをすることができない限り?
Yuck

これは、サーバー障害に移行する必要がある場合はできるようにするよりも、他の理由のために、より多くの電流の回答(ものなどその時にこのトピックの参照のAWSのマニュアルdocs.aws.amazon.com/AWSEC2/latest/UserGuide/...
Jeromyフランス語

回答:


9

すべてのすばらしい推奨事項、そして私が見つけたこの記事を追加したいと思いました。これは、Amazon Web UIツールを使用してWindows Amazon EC2 EBSインスタンスを拡張し、必要な変更を実行することに関するものです。CLIの使用に慣れていない場合、これによりアップグレードがはるかに簡単になります。

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

この記事を投稿してくれたTekGoblinに感謝します。


103

ストレージを増やすことはできますが、その場で行うことはできません。現在のブロックのスナップショットを取得し、新しい大きなブロックを追加して、スナップショットを再アタッチする必要があります。

シンプルなウォークスルーがあります、ここで使用することに基づいて、AmazonのEC2のコマンドラインツールを


2
また、ファイルシステムのサイズを変更する必要があります。おそらく「resize2fs-ext2 / ext3 / ext4 file system resizer」を探しているでしょう。
James Moore

8
私はこれをグーグルしなければならなかった。この質問とこのビデオを同時にヒットしました。これは本当にすばらしいウォークスルーです。作成者youtube.com/watch?v=ouYjQ3_I3BAに感謝します(ジェームズムーアが述べたように、リサイザビットを除いて自分ですべてを理解しました。)
Chris Allen Lane

EBSを使用するメリットの柔軟性の1つとして、最初にスナップショットのVolumeSizeをクエリすることにより、AWS-SDKを使用してEBSボリュームサイズを設定する方法もあります
Chetabahana

あなたは、することができます実際にAWSコンソールから、今生きてボリュームのサイズを変更します。SSDインスタンス(gp2、io1)でのみ機能するようで、あるタイプから別のタイプに切り替えることもできます。いつ追加されたのかはわかりませんが、これで大きな問題が解決しました。
STRML 2017

44

必要に応じて、より多くのスペースをオンザフライで単純に「バンプ」することはできませんが、スナップショットを使用してパーティションのサイズを変更できます。

手順はこれを行います:

  1. ebsボリュームのマウントを解除
  2. EBSスナップショットを作成する
  3. より多くのスペースで新しいボリュームを追加する
  4. パーティションテーブルを再作成し、ファイルシステムのサイズを変更します
  5. 新しいEBSボリュームをマウントする

http://aws.amazon.com/ebs/を見てください -EBSスナップショット:

スナップショットは、複数の新しいボリュームのインスタンス化、ボリュームのサイズの拡張、またはアベイラビリティーゾーン間でのボリュームの移動にも使用できます。新しいボリュームが作成されると、既存のAmazon S3スナップショットに基づいてそれを作成するオプションがあります。そのシナリオでは、新しいボリュームは元のボリュームの正確なレプリカとして始まります。オプションで別のボリュームサイズまたは別のアベイラビリティーゾーンを指定することにより、この機能を使用して、既存のボリュームのサイズを増やしたり、新しいアベイラビリティーゾーンに複製ボリュームを作成したりできます。スナップショットを使用してボリュームのサイズを変更する場合は、ファイルシステムまたはアプリケーションがデバイスのサイズ変更をサポートしていることを確認する必要があります。


22

私はすべての答えに従いました、すべてがすべての点で欠けているものがあります。

これらの手順に従うと、EBSボリュームを拡大してデータを保持できます(これはルートボリューム用ではありません)。簡単にするために、AWS consuleを使用してスナップショットを作成することをお勧めします... AWSコマンドラインツールを使用しても実行できます。

ここではルートボリュームに触れていません。

AWSコンソールに移動します。

  1. インスタンスをシャットダウンします(数分間のみです)。
  2. 拡大する予定のボリュームを切り離します(/ dev / xvdfなど)。
  3. ボリュームのスナップショットを作成します。
  4. 作成したばかりのスナップショットを使用して、より大きなサイズの新しいボリュームを作成します
  5. 新しいボリュームをインスタンスに接続します
  6. インスタンスを起動する

インスタンスにSSHで接続します。

 $ sudo fdisk -l

これはあなたのようなものを与えます:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

開始値とID値を書き留めます。(この場合は2048と83)

fdiskを使用して、パーティションxvdf1を削除し、まったく同じブロック(2048)から始まる新しいパーティションを作成します。同じID(83)を指定します。

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

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

Calling ioctl() to re-read partition table.
Syncing disks.

このステップについては、こちらで詳しく説明しています:http : //litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

あと少しで、ボリュームをマウントしてresize2fsを実行するだけです。

EBSボリュームをマウントします:(鉱山は/ mnt / ebs1にあります)

$ sudo mount /dev/xvdf1 /mnt/ebs1

そしてそれをサイズ変更します:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

できた!df -h新しいサイズを確認するために使用します。


19

数分のダウンタイムで大丈夫である限り、Eric Hammondが実行中のEBSインスタンスのルートディスクのサイズ変更に関する優れた記事を書いています:http : //alestic.com/2010/02/ec2-resize-running-ebs -ルート


1
これに触発されて、私は「awscripts」を書き始めました。@ github.com/moejay/awscriptsこれには、Ericのコマンドとインスタンスタイプを変更するコマンドが含まれ、簡単な「crontabbable」スクリプトに含まれています
jay

5

これで、AWSマネジメントコンソールからこれを実行できます。プロセスは他の回答と同じですが、コマンドラインに移動する必要はありません。


7
これがWebコンソール経由でどのように行われるかについての詳細情報を投稿できますか?コンソールはボリュームのサイズを変更できる場合がありますが、特にXFS、BRTFSなどのタイプの場合、ボリューム内のパーティションのサイズ変更をどのように処理しますか?
リヤドカラ

これはコメントである必要があります。既存の回答を補強するだけで、それ自体に新しいものは何も追加されません。
Yuck

1
Webコンソールの使用方法については、こちらをご覧ください:docs.aws.amazon.com/AWSEC2/latest/UserGuide/…–
Dan

4

ところで、物理ディスクと同様に、LVMを使用すると便利です。例:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

大きな利点:スペースを動的に追加(または削除)できます。

また、インスタンス間/インスタンス間で簡単に移動できます。

警告:

  • 事前に構成する必要があります
  • 単純なJBODセットアップは、1つの「ディスク」を失うとすべてを失うことを意味します

4

私のステップ:

  1. インスタンスを停止します
  2. インスタンスに接続されているebsボリュームを見つけて、そのスナップショットを作成します
  3. 上記のスナップショットを使用して、より大きなディスク容量の新しいボリュームを作成します。残念ながら、スナップショットを作成するためのawsコンソールのUIは、awsのすべてのスナップショットを一覧表示するため、ほとんど使用できません。コマンドラインツールを使用すると、次のようにはるかに簡単になります。

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. インスタンスから既存のebs(小さい)ボリュームを切り離します

  5. 新しい(より大きな)ボリュームをインスタンスに接続し、インスタンスが予期しているのと同じデバイスに接続します(私の場合は/ dev / sda1です)。
  6. インスタンスを開始する

完了です!

上記のステップ3以外は、aws管理コンソールを使用してすべてを実行できます。

また、ここで言及されているように注意してください:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

ec2インスタンスのデバイスは/ dev / xv *であるのに対し、aws Webコンソールは/ dev / s *であると通知します。


2
2013年11月以降、新しく作成したスナップショットを選択して、ページの上部にある[ボリュームの作成]をクリックするだけです。これにより、スナップショットからボリュームが作成され、コマンドラインから上記の手順3を実行することを回避できます。
Matt C

1
1つの注意点は、インスタンスと同じアベイラビリティーゾーンにボリュームを作成していることを確認する必要があることです。そうしないと、アタッチできなくなります。
codecowboy 2014年

3

Windows OSの場合は「diskpart」コマンドを使用します。ここを参照し てください。http//support.microsoft.com/kb/300415を使用します。非ルートディスク(基本ではないダイナミックディスク)で実行した手順は次のとおりです。

スナップショットを取得したら、古いEBSボリューム(たとえば600GB)をマウント解除し、より大きなEBSボリューム(たとえば1TB)を作成して、この新しいEBSボリュームをマウントします-サイズ変更(600GBから1TB)をWindowsに通知する必要があります。コマンドプロンプト(管理者として実行)

diskpart.exe

disk = 9を選択します

volume = Zを選択します

伸ばす

[私のディスク9、Zというラベルが付いたボリュームは、サイズ600GBのec2-snapshotから作成されたサイズ1TBのボリュームでした-600GBを1TBにサイズ変更したかったので、上記の手順に従ってこれを行うことができました。]


私のWin Server 2003 R2 Datacenterシステムでうまく機能しました。先端をありがとう!
ジェフヘイ

素晴らしいポスト、私をたくさん助けてくれました!
user1326293 2013年

0

オペレーティングシステムでサポートされている場合は、すべてのEBSボリュームに論理ボリュームマネージャー(LVM)を強くお勧めします。Linuxディストリビューションは通常そうです。いくつかの理由で素晴らしいです。

  1. 論理ボリュームのサイズ変更と移動はライブで実行できるため、ダウンタイムを必要とするオフラインスナップショットの全体ではなく、別の大きなEBSボリュームを作成し、物理ボリューム(PV)としてLVMプールに追加して、それに論理ボリューム(LV)を割り当て、プールから古い物理ボリュームを削除し、古いEBSボリュームを削除します。次に、単に論理ボリュームのサイズを変更し、その上のファイルシステムのサイズを変更します。これはダウンタイムをまったく必要としません!

  2. ストレージを「物理」デバイスから抽象化します。ダウンタイムやマウントポイント/ fstabの変更を必要とせずにデバイス間でパーティションを移動することは非常に便利です。

AmazonがEBSボリュームをその場でサイズ変更できるようになればいいのですが、LVMではそれは必要ありません。


0

ルートボリュームがxfsファイルシステムの場合、このコマンドを実行しますxfs_growfs /


これは、完全で使用可能な回答と見なされるために、もう少し詳細が必要です。
Yuck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.