【Oracle Cloud Infrastructure】ブロック・ボリュームをインスタンスにアタッチする

ベアメタル・インスタンスや仮想マシン・インスタンスからブロックデバイスとして利用することができるボリュームを、簡単に作成、管理することができる。インスタンスからボリュームに対するアクセスは iSCSIもしくは準仮想化を通じて行われる。
インスタンスにアタッチしたボリュームは、通常のディスク・ドライブと同じように OSから利用することができ、またインスタンスからデタッチし、新しい別のインスタンスにアタッチすることで、データを失うことなく移行可能。

ブロック・ボリュームの典型的なユースケース

- インスタンスのストレージの拡張：Oracle Cloud Infrastructureのベアメタル・インスタンス、仮想マシン・インスタンスいずれに対しても、ブロック・ボリュームをアタッチすることでOSのストレージ領域を拡張することが可能
- 永続化されたストレージ領域の利用：インスタンスを終了（Terminate）しても、ブロック・ボリュームとそこに格納されたデータは永続する。これらはボリュームを明示的に終了（Terminate）するまで存続する
- インスタンス間のデータ移動：インスタンスにアタッチしたブロック・ボリュームをデタッチし、別のインスタンスにアタッチすることで、１つのインスタンスから別のインスタンスにデータを簡単に移動させることが可能

# ブロック・ボリュームの作成
1. コンソールメニューからブロック・ストレージ → ブロック・ボリュームを選択し、ブロック・ボリュームの作成ボタンを押す
    <img width="500" alt="スクリーンショット_2019-12-07_18_17_56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fea192a3-f5a0-ab09-a65e-49b0263edae0.png">
<img width="1386" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/a9e66d16-c460-92b1-f0c5-bfdfc40c1df4.png">

2. 立ち上がった「ブロック・ボリュームの作成」ウィンドウに以下の項目を入力し、「ブロック・ボリュームの作成」をクリック<br><img width="705" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/c774f5bf-c453-b75b-9a48-0ca09b03684b.png"><br><img width="710" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/36580129-2811-6f4b-25f8-d1bd69869737.png">
    - 名前：任意
    - コンパートメントに作成：デフォルトで現在のコンパートメントが選択されている
    - 可用性ドメイン：インスタンスを作成したものと同じアベイラビリティ・ドメインを選択<br>ℹ️ ブロック・ボリュームは同じアベイラビリティ・ドメインにあるインスタンスから飲みアクセスが可能。別のアベイラビリティ・どめいにゃ、別のリージョンのインスタンスからアクセスすることはできない。
    - サイズ（GB）：50を入力
    - バックアップ・ポリシー：必要に応じてポリシーを選択することで自動的にバックアップ取得することも可能
    - ボリューム・パフォーマス：
    - 暗号化：**ORACLE管理キーを使用した暗号化**が選択されていることを確認
    - タグ：
3. ボリュームの作成中はプロビジョニング中と表示される
4. ボリュームの作成が完了し、ステータスが使用可能になったことを確認する<br><img width="1409" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/073597ca-dc80-bef5-42a9-0df49fd72a4a.png"><br><img width="1408" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fddb030a-356a-5555-24cb-f3728669a5bc.png"><br>※メトリックはすぐには表示されない

# ボリュームのインスタンスへのアタッチ
仮想マシンに、ブロック・ボリュームをアタッチする。
アタッチ方法は iSCSIと準仮想化が選べる

- 準仮想化：OSからのコマンド操作は不要なので利用は簡単。IO性能のオーバーヘッドが数パーセントある。IOPSの SLAは適用されない。
- iSCSI：OSから利用するためのコマンド操作が必要。性能のオーバーヘッドはない。IOPSの SLAが適用される

今回はiSCSIでのアタッチを行い、iSCSIコマンドを利用して OSからアクセスできるようにする。

1. コンソールメニューから「コンピュート」→「インスタンス」を選択<br><img width="527" alt="スクリーンショット_2019-12-07_18_40_11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fc864552-0ec2-5631-7f5e-79699d44fb57.png">
2. 対象の仮想インスタンス名のリンクをクリックし、インスタンスの詳細画面に移動する<br><img width="1403" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/4c95c9ba-bf3f-110b-4772-b422fca19ca8.png">
3. 画面下部の「リソース」から「アタッチされたブロック・ボリューム」を選択し、「ブロック・ボリュームのアタッチ」をクリック<br><img width="1403" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/b3059011-5584-96c7-242d-4fc865f902fb.png"><br><img width="1403" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fc786c89-f0ac-7a76-2d0d-fdc684ce3b2c.png">
4. 立ち上がった「ブロック・ボリュームのアタッチ」ウィンドウに以下の項目を入力し、「アタッチ」をクリック<br><img width="716" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fb55376d-80c8-8bce-fa23-07169cfcae8c.png">
    - ブロックボリュームのアタッチ方法を選択します：iSCSI（今回はこっち）
    - アクセス：読取り／書込み
    - ボリュームの選択：チェック
    - ブロック・ボリューム・コンパートメント：デフォルトで現在のコンパートメントが選択されている
    - ブロック・ボリューム：ブロック・ボリュームを選択
    - デバイス・パス：任意のパスを選択
5. iSCSIタイプを選択した場合、「ブロック・ボリュームのアタッチ」のウィンドウが開く。内容を確認してウィンドウを閉じる<br><img width="725" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/a5c90f1d-f0d0-d05f-c3f3-937a8fee4c56.png">
6. アタッチ中は、ステータスが「アタッチ中」と表示される
7. アタッチが完了すると、ステータスが「アタッチ済」に変わる<br><img width="1407" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fc36b3df-8bd2-9799-8e95-76f5ef2280c6.png">
8. アタッチされたボリュームの右側の「・・・」から「iSCSIコマンドおよび情報」をクリック<br><img width="1131" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/51c2ac70-657e-8c64-fd39-83932213ffb5.png">
9. 立ち上がった「iSCSIコマンドおよび情報」ウィンドウの中に、インスタンスからiSCSIデバイスにアクセスするためのコマンドをコピーする<br>「アタッチ・コマンド」というコマンドブロックの左下にある「コピー」リンクをクリックし、表示が「コピー済」担ったことを確認する<br><img width="720" alt="68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3134313330382f62353833663834372d363064322d346363622d663631342d6334303862313230333030642e706e67.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/9e1f95ea-2030-31e6-9063-768465166dae.png">
10. インスタンスに opcユーザで sshアクセスし、コピーしたコマンドをペーストして実行する<br><img width="1038" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/02c7cc6f-d572-06f5-8b0e-939d1aada756.png"><br>実行結果が successful都なっていることを確認する
11. 以下のコマンドを実行し、OSから新しくブロックデバイスが認識されていることを確認する<br><img width="324" alt="1__root_testvm1____ssh__と_「【Oracle_Cloud_Infrastructure】ブロック・ボリュームをインスタンスにアタッチする」を編集_-_Qiita.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/6dd7bb92-7e1b-1470-158b-3f0b97a46056.png">
実行した iSCSIコマンドで、インスタンスを再ブートした後も、iSCSIボリュームに再度ログインされるから、コマンドは再起動の旅に実行する必要はない。

# （オプション）ボリュームのフォーマットおよびマウント（作成中）

# ボリュームのデタッチ
1. コンソールメニューから「コンピュート」→「インスタンス」を選択<br><img width="527" alt="スクリーンショット_2019-12-07_18_40_11.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/fc864552-0ec2-5631-7f5e-79699d44fb57.png">
2. 対象の仮想インスタンス名のリンクをクリックし、インスタンスの詳細画面に移動する<br><img width="1403" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/4c95c9ba-bf3f-110b-4772-b422fca19ca8.png">
3. 画面下部の「リソース」から「アタッチされたブロック・ボリューム」を選択し、「ブロック・ボリュームのアタッチ」をクリック<br><img width="1403" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/b3059011-5584-96c7-242d-4fc865f902fb.png">
4. アタッチされたボリュームの右側の「・・・」から「デタッチ」をクリック<br><img width="1128" alt="スクリーンショット_2019-12-07_19_18_27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/7c3dddfa-b56b-56f0-5c33-61b2048c7a8d.png">
5. 「デタッチ・コマンド」の下の「コピー」をクリック<br><img width="723" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/4f69de73-4487-29c1-8ca2-e3333a8ffd96.png">
6. インスタンスに opcユーザで sshアクセスし、コピーしたコマンドをペーストして実行する<br><img width="973" alt="1__root_testvm1____ssh_.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/e4dbabb5-0195-6c0b-4c6c-46e45abef11f.png">
7. 「デタッチ続行」をクリック<br><img width="718" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/198d3806-9b96-4017-8a2f-bc6f6526a1e1.png">
8. 「ブロック・ボリュームのデタッチ」確認で「OK」をクリック<br><img width="720" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/2c18a37d-2325-13c4-3160-8018321e010e.png">
9. デタッチ中<br><img width="1126" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/f2bf8428-00fe-e78f-deaf-3a7cafd0a254.png">
10. インスタンスにアタッチされたストレージ・ボリュームがなくなる<br><img width="1129" alt="Oracle_Cloud_Infrastructure.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141308/dd76fbbc-9963-ec0a-694a-fbed9f119f91.png">