AMB-NET・マスターノード

AWS ボリューム拡張方法(SSD & HDD)

投稿日:

AWSインスタンスに接続されているボリューム(SSDやHDD)の容量が足りなくなってきたら、拡張する必要があります。

SSDはインスタンスを停止せずに拡張することが出来ます(ノードは停止した方が良いです)が、HDD(マグネティック)はノードだけでなくインスタンスも一度停止し、ボリュームのスナップショットを取る必要があります。

それぞれについて説明します。

その前に、ボリューム(ディスク)の使用状況を確認してみましょう。

以下のコマンドで確認可能です。

$ df -h

ルートにマウントされているボリューム(一番右のMounted on欄が / になっている)の情報を見ます。

この例の場合、/dev/xvda1です。サイズが49G(ギガバイト)と表示されています。この例のボリュームはAWS上では50GBに設定していますが、このように若干少なく表示されるのは普通の事です。そのうち1.1GBが使用済み、残り48Gが利用可能という意味です。

利用可能な容量(Avail)が少なくなってきたら、ボリュームの拡張を検討しましょう。

このガイドの手順は、今後の状況次第で変更される可能性があります。また、ボリュームを変更する際は、万が一に備えてバックアップ(スナップショット)を取りましょう。

SSDの場合

手順1. ノードの停止

まず最初にノードを停止します。

インスタンス(Ubuntuサーバー)にSSHログインして、以下のコマンドを実行しましょう。

$ cd ~/ambrosus-nop/output/ && sudo docker-compose stop

手順2. AWSコンソールでボリュームを拡張

AWSのEC2コンソールにログインします。

どのボリュームを拡張するかを決める

まず、拡張したいボリュームを見つけます。管理しているインスタンス(ノード)が1つのみの場合は簡単です。サイドメニューから「ボリューム」のページに移動し、表示されているものが該当のボリュームのはずです。

複数のインスタンスを管理している場合は、まずどのボリュームを拡張するのかをはっきりさせましょう。人によって管理方法や、ボリュームにもきちんとNameタグを付けているかどうかなどが異なるので、以下はボリュームを見つける方法のあくまで1例です。

そのために、まずは該当のインスタンスを見つけましょう。複数のノードを管理している場合はNameタグで見分けているはずですね。

ボリュームを拡張したいインスタンスのインスタンスIDをコピーします。

サイドメニューから「ボリューム」のページに移動します。

インスタンスIDを検索窓にペーストし、検索します。

これで拡張する対象となるボリュームが見つかりました。

ボリュームを拡張する

拡張したいボリュームにチェックを入れて、「アクション」「ボリュームの変更」と進みます。

サイズ欄に、ボリュームを何ギガバイトに拡張したいかを入力します。例えば100GBにしたいなら100と入力します。

「変更」をクリックして先に進み、変更のリクエストを完了しましょう。

手順3. Ubuntuサーバー上でパーティションを拡張

先ほどまでの手順で、ボリュームの容量自体は拡張できました。あとはパーティションを拡張し、増えた分の容量を使えるようにしましょう。

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

Ubuntuにログインしたら、以下のコマンドを実行してみましょう。

$ lsblk

この例では8GBのボリュームを50GBに拡張しているので、このような表示になっています。元々のボリュームサイズと、拡張後のボリュームサイズによって表示は異なります。

いずれにしろ、このままではせっかく拡張したボリュームが使えないので、パーティションを拡張します。

上の画像では、このボリュームのボリューム名はxvdaで、パーティション名はxvda1であることが分かります。環境によって異なる可能性があるので、適宜読み替えて以下のコマンドを実行してください

$ sudo growpart /dev/xvda 1

/dev/xvdaと1の間にはスペースがあることに注意してください。

再度lsblkを実行してみると、パーティションも拡張されたことが確認できます。

しかし、実はまだファイルシステムには変更が反映されていません。

手順4. ファイルシステムに変更を反映

この例では/dev/xvda1となっている部分を、自分の環境に合わせて置き換えてください

最後に以下のコマンドを実行します。

$ sudo resize2fs /dev/xvda1

これでファイルシステムにも変更が反映されました。SSDのボリュームの拡張はこれで完了です。

手順5. ノードの起動

最後に、停止していたノードを起動して完了です。

cd ~/ambrosus-nop/output/ && sudo docker-compose up -d

おつかれ様でした。

 

HDD(マグネティック)の場合

まずノードを停止し、その後インスタンスも停止します。

インスタンス(Ubuntuサーバー)にSSHログインして、以下のコマンドを実行しましょう。

$ cd ~/ambrosus-nop/output/ && sudo docker-compose stop

$ sudo shutdown -h now

手順1. スナップショットの作成

HDDの場合、ボリュームのスナップショットを作成する必要があります。スナップショットは、作成する容量と、それを維持している期間に応じて費用がかかります(詳しくはこちら)。

まずサイドメニューから「ボリューム」に進み、拡張したいボリュームを選択します。複数のノードを管理している場合、Nameタグや現時点のボリュームサイズなどで該当のボリュームを見つけられるでしょう。

「アクション」タブから「スナップショットの作成」に進みます。

今後の管理を分かりやすくしたい場合は、「説明」欄やNameタグを活用してください。

これでスナップショットのリクエストが完了しました。スナップショットの作成完了まではしばらく時間がかかります。

手順2. アベイラビリティゾーンの確認

まず、拡張したい(容量が足りなくなった)ボリュームが接続しているインスタンスが、どのアベイラビリティゾーンに属しているかを確認します。

アベイラビリティゾーンとは、リージョンの中でさらに細分化された、サーバーが所属している場所のようなものです。例えば、東京リージョンで作成されたインスタンスは全て同じデータセンターで管理されている訳ではなく、物理的に離れた4つのアベイラビリティゾーンのどこかに配置されます。

このアベイラビリティゾーンは後で必要になるので、どこかにメモしておきましょう。

手順3. 拡張したボリュームの作成

先ほど作成したスナップショットを元にして、新しく容量の大きなボリュームを作成します。

この手順を進める前に、スナップショットの作成が完了している必要があります。

サイドメニューから「スナップショット」に進みます。

ステータスが「completed」になっていればスナップショットが完成しています。

先ほど作成したスナップショットを選択し(複数ある場合は注意)、「アクション」タブから「ボリュームの作成」をクリックします。

サイズ(GiB)には、新しいボリュームを何ギガバイトにしたいかを入力します。

アベイラビリティゾーンが手順2で確認したものと一致している事を確認してください(一致していなければ同じものを選択してください)。

新しいボリュームのNameタグは、複数ノードを管理しているのであれば分かりやすいものを付けた方が良いでしょう。

最後に「ボリュームの作成」をクリックして完了です。

手順4. ボリュームの付け替え

以前のボリュームと、新規作成した(容量を拡張した)ボリュームを付け替えます。

まず、古い(容量の小さい)ボリュームを外しましょう(デタッチ)。

サイドメニューから「ボリューム」に進みます。

古いボリュームを選択し(他のボリュームと間違えないように注意)、アクションから「Detach Volume」を選択します。

しばらくするとデタッチが完了します。

次に新しいボリュームを接続します(アタッチ)。

 

つい先ほど作成したボリュームが利用可能(available)になっている事を確認します。なっていなければ、ボリュームの作成が完了するまで待ちましょう。

無事「available」になったら、該当のボリュームを選択し、「アクション」、「ボリュームのアタッチ」を進んでください。

「インスタンス」の欄をクリックすると、Nameタグでインスタンスを選べます。

デバイス欄はそのままにして、「アタッチ」をクリックします。

インスタンスの欄をクリックすると、Nameタグでアタッチ先のインスタンスを選択できます。

デバイス欄には「/dev/sda1」と記入し、「アタッチ」をクリックしましょう。

手順5. インスタンスの起動

新しいボリュームのアタッチが完了したら、インスタンスを再び起動する準備が整いました。

インスタンスのページを開きます。容量を拡張したボリュームをアタッチしたインスタンスを選択し、「アクション」「インスタンスの状態」「開始」の順にクリックします。

手順6. ノードの起動

再度ノードを起動します。インスタンスにSSHで接続し、Ubuntuにログインしたら以下のコマンドを実行します。

$ cd ~/ambrosus-nop/output/ && sudo docker-compose up -d

これで完了です。おつかれ様でした。

 

おすすめ記事

不正な開封を防止するスマートインク技術 1

通常スマートサプライチェーン管理は、追跡機能、最適化されたデータの共有、偽造防止ソリューション、自動支払い処理など、さまざまな機能に関連しています。ブロックチェーンとIoTを追跡と追跡調査の目的で使用 ...

国連に支援されたネットワーク 2

Ambrosusが国連(国際連合)の消費者情報プログラムに参加 食品と薬品サプライチェーンにおける品質保証のためのブロックチェーン・IoTプラットフォームであるAmbrosus(アンブロサス)が、国際 ...

AmbrosusがNDSと提携し、メガマートで販売される牛肉をAMBブロックチェーンで追跡 3

ソウル、韓国 - 2018年10月10日 - グルーバルに分散したブロックチェーンとIoTプラットフォームのAmbrosus(アンブロサス)は、革新的な食品の追跡可能性(トレーサビリティ)プラグラムに ...

ambrosusとマダガスカル産ブルボンのサプライチェーン 4

Ambrosus(アンブロサス)がPremium Goodsと提携し、バニラの品質や産地、流通経路を証明可能に 目次1 バニラのサプライチェーンについて2 ブルボンバニラ企業Premium Googs ...

-AMB-NET・マスターノード
-,

Copyright© Ambrosus Japan - 次世代のサプライチェーン管理(SCM) , 2019 All Rights Reserved.