3.6 サーバーのストレージ容量を変更するには？

（2016年時点での内容をアーカイブとして掲載しているため、一部の掲載内容が最新情報とは異なる場合がありますので、ご了承ください。最新のIBM Cloudのアップデート情報は[IBM Cloud アップデート情報](https://www.ibm.com/cloud-computing/jp/ja/cloud-update/) や [柔らか層本](https://ibm.ent.box.com/v/ibmcloud-yawaraka)をご参照ください。）

概要
サーバーの注文時だけでなく注文後もストレージ容量の増減ができます。 仮想サーバー注文時にディスクを追加する方法と、仮想サーバーの増設用ディスクを追加注文して容量を増やす方法、物理サーバーのハードディスクを追加する方法をご説明します。
 

仮想サーバーの増設ディスクを利用する方法
OSディスクの他に増設ディスクを注文することができます。 この増設ディスクは、Linuxはファイル・システムを作成しマウントできます。 また、Windowsの場合はフォーマットして利用可能になります。 以下ではLinuxを例として具体的な方法をみていきます。 この増設ディスクは仮想サーバーに取り付け（アタッチ）たり、取り外し（デタッチ）を自由に行えますが、取り付け・取り外しを行うと仮想サーバーが再起動されるので注意が必要です。

これから仮想サーバー注文時にSANディスクを追加し、/dataとしてマウントする方法をみていきます。

仮想サーバーの注文画面で、ディスクの選択を行います。 次の画面のように、サーバーの注文画面で表示されているFIRST DISKは、OSが入る領域です。 SECOND DISKからFIFTH DISKまでをクリックすると、それぞれの追加ディスクを選択し注文することができます。 例えば、SECOND DISKに10GBのSAN領域を追加するときは、「SECOND DISK」をクリックして容量の選択肢を表示し、「10 GB (SAN)」をクリックします。 あとは、通常のサーバーの注文と同じように申し込みをお願いします。


申込時のディスクにSANを選んだ場合は、5つまでディスクを選ぶことができます。 Localの場合は、2つまでしか選べないので、拡張を考えているときはご注意願います。

サーバーが起動すると、ファイル・システムを作成してマウントすることで、データ領域として利用できます。 サーバーにログイン後「lsblk」コマンドを実行しますと、サーバーの注文時に追加した10GBのディスクが「xvdc」として見えています。
 
```
# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   25G  0 disk
tqxvda1 202:1    0  256M  0 part /boot
└xvda2 202:2    0 24.8G  0 part /
xvdc    202:32   0   10G  0 disk
xvdb    202:16   0    2G  0 disk
└mqxvdb1 202:17   0    2G  0 part [SWAP]
```

新しいパーティションを作成するために「fdisk /dev/xvdc」と入力します。 新規にアサインされたディスクは必ず初期化してから使います。

 
```
# fdisk /dev/xvdc
```

パーティションの作成は「n」->「p」->「1」->「Enterキー」->「Enterキー」->「w」を実行します。 それから「lsblk /dev/xvdc」コマンドを実行すると、新しいパーティション「/dev/xvdc1」が作成されていることがわかります。
 
```
# lsblk /dev/xvdc
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdc    202:32   0  10G  0 disk
└xvdc1 202:33   0  10G  0 part
```

次のように追加したパーティションをOSからマウントできるように、ファイル・システムを作成します。
 
```
# mkfs.ext4 /dev/xvdc1
```

今回は/dataの領域にマウントしたいので、「mkdir /data」を実行します。 最後にマウントするため「mount /dev/xvdc1 /data」コマンドを実行します。 マウントの結果は「df」コマンドで確認します。
 
```
# mkdir /data
# mount /dev/xvdc1 /data
# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda2      25544012 1161556  23084896   5% /
tmpfs             508140       0    508140   0% /dev/shm
/dev/xvda1        253871   56497    184267  24% /boot
/dev/xvdc1      10317828  154100   9639612   2% /data
```

この状態で再起動がかかるとマウントはされません。 サーバーの起動時からこのディスクがマウントされるためには、/etc/fstabにこのディスクの定義を追加する必要があります。
 
```
/dev/xvdc1 /data ext4 defaults,noatime 0 2
```

ファイルシステムを拡張して容量を増やすには
カスタマーポータルから第二ディスク以降の増設ディスクの容量を変更することはできますが、その場合のディスクは初期化されデータは保持されません。そこで、大切なデータを保持しながらファイルシステムとして/dataの10GBの容量を20GBに増やす方法をみていきます。

データを保持して/dataの容量を増やすために、使用中のディスクを、より大きな容量の増設ディスクと入れ替える必要があります。大切なデータを失わないように、以下のステップで作業を進めます。

(1) 使用中のディスクをデタッチする
(2) 仮想サーバーに追加のディスクを注文する
(3) 追加されたディスクをサーバーのOSで初期化して、OSからアクセスできるようにする
(4) 最初にデタッチしたディスクを再アタッチし、データを移行する
(5) 不要になったディスクをデタッチする

(1) 使用中のディスクをデタッチする

容量が足りなくなった増設ディスクをデタッチするために、ファイルシステムをアンマウントし、fstabに先ほど追加した行をコメントにして無効にします。 デタッチするためには、 カスタマーポータルの「Storage」->「Block Storage」を選択します。「Portable Storage」の項目でディスクのリストが表示されます。 対象サーバーの「Disk 2」をクリックし、「Backup /data」と書き換えます。 これはボリュームをデタッチしてしまうと、どのサーバーと紐付くものか判別できなくなるのを避けるためです。 それから「Actions」->「Detach」をクリックします。



クリックすると、次のような確認画面が表示されます。 これはボリュームをデタッチするには再起動を行うという注意です。 対象サーバーとボリューム名に違いが無いことを確認して「Yes」をクリックします。 それから画面に「Success」と表示されれば、再起動とボリュームのデタッチが進行します。

(2) 追加のディスクを注文する

次は20GBの容量のボリュームを注文します。 この注文の方法には2つの方法があり、ポータブル・ストレージとして注文すると月額となり、サーバーのストレージ変更で注文するとサーバーに合わせた単位の課金になります。 これらの実態は同じSANディスクですから、どちらから注文しても同じ機能が利用できます。

ポータブル・ストレージして注文する方法

カスタマーポータルの「Storage」->「Block Storage」->「Order Block Storage」->「Select Storage Type:」で「Portable Storage」を選択します。次のウィンドが表示されるので、「Disk Description」にマウントポイントの/dataを入れ、「Select Storage Size」で20Gをクリックします。そして、「Location」でサーバーと同じ場所を選択します。 「Continue」をクリックして確認画面に進み、問題がなければ「Place Order」をクリックして注文を確定します。


サーバーのストレージ変更で注文する方法
カスタマーポータルの「Devices」->「Device Name」でメニューを進み「Storage」のタブをクリックします。次の画面下方の「Other Storage」のOSディスクに相当する一行目の「Modify」をクリックします。

次のウィンドが表示されるので「Second Disk」で20GBのディスクを選択します。即時接続するために「Immediately」にチェックを入れ「Continue」をクリックして先へ進め注文を確定します。

この方法で追加したSANディスクは、最初からサーバーにアタッチされます。


(3) 追加されたディスクをサーバーのOSで初期化して、OSからアクセスできるようにする

サーバーのストレージ変更で注文した場合は、このカスタマーポータルの操作をとばして、lsblkコマンドの実行に進めます。 カスタマーポータルの「Storage」->「Block Storage」でメニューを進み、「Portable Storage」の中で上記で新規に注文したストレージの行の「Actions」から「Attach」を選びます。

次にアタッチしたいサーバーを選択して「Search」して、サーバーリストを更新します。アタッチするサーバーの行の「Attach」をクリックしてサーバーとの接続を開始します。この後サーバーの再起動後に、OSからストレージが認識されるようになっています。

再起動直後のサーバーでlsblkコマンドを実行すると、アタッチしたストレージが確認できます。20GBのストレージをアタッチしたので、次の実行結果から、そのデバイスはxvdcであることが分ります。
 
```
# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvdc    202:32   0   20G  0 disk
xvda    202:0    0   25G  0 disk
├xvda1 202:1    0  256M  0 part /boot
└xvda2 202:2    0 24.8G  0 part /
xvdb    202:16   0    2G  0 disk
└xvdb1 202:17   0    2G  0 part [SWAP]
```

新しいパーティションを作成するために「fdisk /dev/xvdc」と入力します。 新規にアサインされたディスクは必ず初期化してから使います。
 
```
# fdisk /dev/xvdc
```

パーティションの作成は「n」->「p」->「1」->「Enterキー」->「Enterキー」->「w」を実行します。 それから「lsblk /dev/xvdc」コマンドを実行すると、新しいパーティション「/dev/xvdc1」が作成されていることがわかります。

次のコマンドで、ファイルシステムを作成します。
 
```
# mkfs.ext4 /dev/xvdc1
```

これで、20GBのファイルシステムとして、マウントできるようになりました。

(4) 最初にデタッチしたディスクを再アタッチし、データを移行する

今度は、元のストレージをアタッチします。カスタマーポータルの「Storage」->「Block Storage」でメニューを進み、「Portable Storage」の中で上記で新規に注文したストレージの行の「Actions」から「Attach」を選びます。

前述と同様にしてアタッチするサーバーを選択します。旧ディスクと新ディスクが接続されると次の表示になります。

次のlsblkの実行結果のように、新しい20GBの領域は「xvdc」として、古い10GBの領域は「xvde」として認識されていることが分ります。
 
```
# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    25G  0 disk
|-xvda1 202:1    0   243M  0 part /boot
`-xvda2 202:2    0  24.8G  0 part /
xvdb    202:16   0     2G  0 disk
`-xvdb1 202:17   0     2G  0 part [SWAP]
xvdc    202:32   0    20G  0 disk
`-xvdc1 202:33   0    20G  0 part
xvde    202:64   0    10G  0 disk
`-xvde1 202:65   0    10G  0 part 
```

新しいxvdcは/dataとしてマウントします。 また、元のディスクのxvde1は/data_oldとしてマウントします。
 
```
# mkdir /data_old
# mount -t ext4 /dev/xvdc1 /data
# mount -t ext4 /dev/xvde1 /data_old
```

これでデータ移行のための準備が整いました。 「df -h」コマンドを実行すると、10GBと20GBのボリュームが、それぞれマウントされていることが分かります。
 
```
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda2       25G  1.1G   23G   5% /
tmpfs           497M     0  497M   0% /dev/shm
/dev/xvda1      248M   56M  180M  24% /boot
/dev/xvdc1       20G  172M   19G   1% /data
/dev/xvde1      9.9G  151M  9.2G   2% /data_old
```

あとはデータを移行します。 rsyncかtarのいずれかを使って、/data_oldから/dataへデータを移行します。
 

rsync の場合
# rsync -avz /data_old /data
 

tar の場合
# cd /data_old ; tar cf - ./ | (cd /data; tar vxf -)

作業が終わったあとは、元のディスクをデタッチします。 これでファイルシステムの容量を増やすことができました。 容量を減らしたい場合には、今回と同様に新しいディスクをアタッチし、データを移行することができます。
 

物理サーバーのハードディスク容量を増やすには？
物理サーバーのハードディスクは月額単位のサーバーだけ仮想サーバーと同様にポータルで注文できます。 以下では、追加ハードディスクの容量を増やす方法をみていきます。

ハードディスクを追加するには、カスタマーポータルの「Devices」->「Device List」から対象サーバーをクリックします。 「Storage」タブをクリックしますと、ページの一番下にハードディスクの構成情報が表示されます。 ハードディスクの列にある「Modify」をクリックします。

画面に変更したい構成を設定するため「Second Hard Drive」を選びます。 それから、どのタイミングで再起動するかを「Modify Windows」（メンテナンス期間）の「Choose Date」をクリックし、作業時間を指定願います。 作業は、ここで指定した期間内で実施されます。 指定後は「Continue」をクリックします。

その次の画面では、料金を確認の後、チェックボックスにチェックを入れて注文を進めます。

注文が確定すると、自動的にチケットが発行されます。 チケットが発行されてから20〜30分程度でSoftLayerのサポート担当者から返信が届きます。

指定していたメンテナンス期間に入ると、サポートから次のようにチケットが届きます。 このチケットが届いた後は、サーバーのハードディスク追加作業に伴い、シャットダウンする必要があるため、一時的に接続できなくなります。

それから30分後、次のように作業が終わったというチケットの返信が届きます。

あとは、サーバーにログインして、追加ディスクが認識されているかの確認や、パーティションの作成・初期化・マウント作業を進めます。

物理サーバーのハードディスクの取り付けと取り外しには、都度サーバーのシャットダウンが必要ですから、計画停止時間を確保した作業が必要です。