Bluemix InfrastructureのRedHat環境でディスクを増強してみた。

#はじめに
Bluemix Infrastructureを用いて、レッドハットを乗せた仮想サーバーをオーダーして、その後ディスクを増設してみました。

主な手順は
KnowlegeLayer「Accessing Block Storage on Linux 」を参考にしました。
https://knowledgelayer.softlayer.com/procedure/block-storage-linux

追加ディスクをAuthorizeした時などにマシンの再起動を必要とはしませんでした。

#サーバーを注文する
Bluemix Infrastructureのトップ画面のDeviceアイコンをクリックし、Virtualサーバー（仮想サーバー）を選択します。
今回は短時間での検証だったのでHourly（時間課金）で以下の画像の構成を組みました。
OSはもちろんRed Hatで。
![仮想サーバー.png](https://qiita-image-store.s3.amazonaws.com/0/141025/61f1a6df-ccf3-d117-cec0-ec7633cdf478.png)

#サーバーにログインする
サーバーにログインします。
トップ画面上部のDevicesタブからDeviceListに入ります。
DeviceListから先ほど注文したサーバーを選択し、「Configuration」タブから「IP Address（Public）」、「Password」タブから「Password」を確認し、メモします。

そのパスワードを元にサーバーにログインします。今回はMacを用いて一連の作業を行ったので、Macの「ターミナル」からログインしました。

ターミナルに `ssh root@(あなたのIP Address)` を打ち込みエンターを押します。
その後、Passwordを入力しエンターを押すとサーバーにログインすることができます。

#追加ディスクを注文する
Bluemix Infrastructureトップ画面のStorageアイコンをクリックし、Block Storageを選択します。
今回は下の図のようなストレージにしました。
![Storage.png](https://qiita-image-store.s3.amazonaws.com/0/141025/9da49850-7b33-1972-93b1-352f5cd051e4.png)

#追加ディスクをAuthorizeする
Device ListのStorageタブから追加ストレージを選択します。
Block Storage一覧の右上にある"Authorize Storage"からAuthorizeできるストレージの一覧を出し、適当なストレージを選択します。
Submitを押したら確定です。
（画像はAuthorizeが済んだ後に思い出してキャプチャを撮ったものです。すいません）
![Block Storage.png](https://qiita-image-store.s3.amazonaws.com/0/141025/9fff0326-e2ea-cf8e-b6fa-3e4f817bc8f1.png)
![Aurhorize.png](https://qiita-image-store.s3.amazonaws.com/0/141025/7b361b73-f445-b0ac-3a5b-ab38531183cd.png)

#ストレージをマウントさせる
##(1)iSCSIと必要な要素をインストール
`yum install iscsi-initiator-utils device-mapper-multipath`

##(2)Multipath Configuration Fileを編集
`vi /etc/multipath.conf`

私の場合、何も入っていなかったので全部コピペしました。
"i"を押してinsertモードに入り以下をコピペします。

    defaults {
    user_friendly_names no
    max_fds max
    flush_on_last_del yes
    queue_without_daemon no
    dev_loss_tmo infinity
    fast_io_fail_tmo 5
    }
    blacklist {
    wwid "SAdaptec*"
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
    }
    devices {
    device {
    vendor "NETAPP"
    product "LUN"
    path_grouping_policy group_by_prio
    features "3 queue_if_no_path pg_init_retries 50"
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    }
編集し終えたらEscキーを1回、Shift+Zキーを2回それぞれ入力し、保存してファイルを閉じましょう
（ファイルを編集した後保存して終わる際は必ずこの作業で終わります）
##(3)Multipath Mdouleをロードし、Multipath Servicesを開始
以下のコマンドを入力します。
`modprobe dm-multipath`
`service multipathd start`
`chkconfig multipathd on`
##(4)Multipathが動いているか確認
`multipath -l`を入力します。
##(5)ファイルをアップデート
`vi /etc/iscsi/initiatorname.iscsi` を入力して出てきたファイルを編集します。
”InitiatorName”の"="以後をStorageのIQNに書き換えます。
##(6)CHAP settingsを編集
`vi /etc/iscsi/iscsid.conf` を入力しでてきたファイルを以下のようになるように該当部分を書き換えます。(各行のはじめの＃も消します)
ストレージのユーザー名とパスワードは、Bluemix InfrastructureのDevice ListのStorageタブから新たに購入したストレージの詳細を確認すると見つかります。
`node.session.auth.authmethod = CHAP`
`node.session.auth.username = "ストレージのユーザー名"`
`node.session.auth.password = "ストレージのパスワード"`
`discovery.sendtargets.auth.authmethod = CHAP`
`discovery.sendtargets.auth.username = "ストレージのユーザー名"`
`discovery.sendtargets.auth.password = "ストレージのパスワード"`
##(7)iSCSIを設定
下のコマンドをそれぞれ入力しiSCSIをセットアップします。
`chkconfig iscsi on`
`chkconfig iscsid on`
`service iscsi start`
`service iscsid start`
##(8)ターゲットIPアドレスを使っているデバイスを探す
ストレージのIPアドレスはDevice Listの中にある、新規に追加したストレージのIPアドレスを用います。
`iscsiadm -m discovery -t sendtargets -p "ストレージのIPアドレス"`
`iscsiadm -m node -L automatic`
##(9)iSCSIにログインしているか確認
以下のコマンドを入力します。
`iscsiadm -m session`
`multipath -l`
##(10)デバイスが接続されているかを確認
以下のコマンドを入力します。
`fdisk -l | grep /dev/mapper`

#ファイルシステムを作成（オプション）
##(1)ディスク名を取得
以下のコマンドを入力します。
`fdisk -l | grep /dev/mapper`
##(2)ディスクにパーティションを作成
`fdisk /dev/mapper/XXX`
XXXの部分には、(1)を入力した際に取得されたディスク名（dev/mapper/XXX)を入力します。
その後下の図の順にコマンドを入力します。
￼![コマンド.png](https://qiita-image-store.s3.amazonaws.com/0/141025/cdaba855-cedb-d6f4-29f4-d682d2df1ea1.png)
##(3)新パーティションにファイルシステムを作成
`fdisk –l /dev/mapper/XXX`
上のコマンドを入力すると/dev/mapper/XXXlp1のような形でパーティション名が取得されますので次のコマンドで使います。
`mkfs.ext3 /dev/mapper/XXXlp1`
（末尾の英字部分込みでコマンドを打つとうまくいかない場合もありますので、その際は末尾の英字を消してみてください）
##(4)マウントポイントを作成
`mkdir /PerfDisk` 　（※PerfDiskではなく、自分でマウント先を選択することもできます）
`mount /dev/mapper/XXXlp1 /PerfDisk`
`df -h`

##ファイルが作成されているか確認
`ls /PerfDisk`
作成したファイルシステムがリストに存在しているかが確認できたら完了です！

おつかれさまでした♪