Oracle Storage Cloud ServiceをNFSマウントしてみた


# 概要
Java Cloud ServiceやDatabase Cloud Serviceのインスタンスを作成する際にバックアップ領域としてOracle Storage Cloudを利用してきました。

![backup.png](https://qiita-image-store.s3.amazonaws.com/0/127983/be1d448f-f188-9aa7-5892-f432419b8dcd.png)

- [Oracle CloudでDatabase Cloud Serviceインスタンスを作ってみた](http://qiita.com/shinyay/items/2e7de9c1c3be3428818b#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%AE%E4%BF%9D%E5%AD%98%E5%85%88)
- [Oracle Java Cloud Serviceインスタンスを作ってみた（WebLogic Server 12cR2 Enterprise Edition）](http://qiita.com/shinyay/items/a984c4a959a13553661a#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%AE%E4%BF%9D%E5%AD%98%E5%85%88)

Oracle Storage Cloud ServieをDatabase Cloud ServiceやJava Cloud Serviceのバックアップ領域以外の用途に使ってみます。

## Oracle Storage Cloud Service
Oracle Storage Cloud Serviceとは、文字通り**記憶領域**を提供するクラウド・サービスですが、記憶領域の種類としては**オブジェクト・ストレージ**になります。

### オブジェクト・ストレージとは

|記憶領域の種類|説明|
|---|---|
|ファイルアクセス・ストレージ|データは**OSによるファイルシステム**として管理<br>ボリュームやディレクトリの概念<br>データ識別子: ファイル名(パス付)|
|オブジェクト・ストレージ|データは**サービスによるリソース**として管理<br>REST APIでアクセス<br>データ識別子: パケット名とオブジェクトキーによるURI|

Oracle Storage Cloudはオブジェクト・ストレージなので大量の非構造化データの格納などに最適なクラウド・サービスです。

- 使用例
    - データ・バックアップ
    - アーカイブ
    - ファイル共有
    - ログ
    - センサー・データ
    - VMイメージ保管

一方で**オブジェクト・ストレージ**という形式のため、データの入出力はアクセスURIを指定したREST APIを経由して行われる事になります。
そのため、入出力するための仕組み（アプリケーションやシェルなど）を考慮する必要があります。

# Oracle Storage Cloud Software Appliance
REST API経由でアクセスしなければならないというオブジェクト・ストレージの制約を吸収してくれる仕組みが、**Oracle Storaga Cloud Software Appliance**です。

このソフトウェアがREST APIの発行を代行してくれます。また内部にファイルシステムとディスクキャッシュを備えているので、POSIXファイルシステムとしてNFSマウントして使用する事が可能です。

![oscsa-02.png](https://qiita-image-store.s3.amazonaws.com/0/127983/d6f10056-7c43-dd4a-01b0-b981442dd629.png)

## Storage Cloud Software Applianceの導入
### 前提
Storage Cloud Software ApplianceはDockerイメージとして提供されているので、Dockerが稼働する環境が必要です。

### Storage Cloud Software Applianceの取得
以下のサイトからインストールファイルをダウンロードします。

- [Oracle Storage Cloud Software Appliance Downloads](http://www.oracle.com/technetwork/topics/cloud/downloads/oscsa-download-2704532.html)

![oscsa-03.png](https://qiita-image-store.s3.amazonaws.com/0/127983/2a8c2a73-d8fe-09f6-65e5-c9bf51f40438.png)

![oscsa-04.png](https://qiita-image-store.s3.amazonaws.com/0/127983/5b49f48e-4cbe-d8ef-a751-351ae0052dd2.png)

２種類のダウンロードタイプがありますが、インストールして使用する場合は**On-premise**を選択してください。

|ダウンロードタイプ|説明|
|---|---|
|On-premise|サーバ環境にインストールして使用<br>Docker稼働が前提|
|Cloud Distribution|Oracle Compute CloudにIaaS環境としてセットアップするクラウド・テンプレート・イメージ|

### Storage Cloud Software Applianceのインストール
ダウンロードしてきたインストールファイルを展開してインストールします。

#### 1. ファイルの展開

```bash
$ tar -xvf oscsa-OnPrem-16.3.1.0.11.tar.gz
```

#### 2. インストール

```bash
$ sudo ./oscsa-install.sh -a

*************************************
Imported temporary env vars from vagrant to this install session
*************************************
Checking that docker is installed and using the correct version
Pass found docker version Docker version 1.12.0, build b9264d4
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

*************************************
Checking host prerequisites
*************************************

Detected linux operating system
Checking kernel version
Pass kernel version 4.1.12-61.1.6.el7uek.x86_64 found
Checking NFS version
Pass found NFS version 4

*************************************
All prerequisites have been met
*************************************


*************************************
Begin install
*************************************

Installing to destination /opt/oscsa_gateway/
Copied install scripts
Copied OSCSA image
Starting configuration script
Importing image
f359075ce4d8: Loading layer [==================================================>] 1.024 kB/1.024 kB
302e187e53f6: Loading layer [==================================================>] 197.8 MB/197.8 MB
d64fc71e054c: Loading layer [==================================================>] 1.024 kB/1.024 kB
fc82e884d587: Loading layer [==================================================>] 1.024 kB/1.024 kB
8379156c64ae: Loading layer [==================================================>] 875.2 MB/875.2 MB
fe57e7860b35: Loading layer [==================================================>] 1.739 MB/1.739 MB
a64c91fd54bf: Loading layer [==================================================>] 3.072 kB/3.072 kB
751cd399b59a: Loading layer [==================================================>] 3.072 kB/3.072 kB
88284ac55d68: Loading layer [==================================================>] 1.024 kB/1.024 kB
198fd8151855: Loading layer [==================================================>] 1.024 kB/1.024 kB
144219c7b3c8: Loading layer [==================================================>] 49.24 MB/49.24 MB
29c7fd61b127: Loading layer [==================================================>]   206 MB/206 MB
acb5feac20cb: Loading layer [==================================================>] 1.024 kB/1.024 kB
d5a734a74924: Loading layer [==================================================>] 1.024 kB/1.024 kB
8682a4044556: Loading layer [==================================================>] 1.024 kB/1.024 kB
9ea439fd996f: Loading layer [==================================================>] 1.024 kB/1.024 kB
79e789f5f71f: Loading layer [==================================================>] 1.024 kB/1.024 kB
ef0a99eef1c3: Loading layer [==================================================>] 1.024 kB/1.024 kB
6d0dfd39389c: Loading layer [==================================================>]  4.65 MB/4.65 MB
2d0a8d8d5337: Loading layer [==================================================>] 27.76 MB/27.76 MB
51e1f3e88bce: Loading layer [==================================================>] 4.096 kB/4.096 kB
8057e27dfc44: Loading layer [==================================================>] 3.584 kB/3.584 kB
04ac5051039f: Loading layer [==================================================>] 34.49 MB/34.49 MB
ab810a06070f: Loading layer [==================================================>]  75.4 MB/75.4 MB
1277605e6547: Loading layer [==================================================>] 827.4 kB/827.4 kB
ade3088c36fc: Loading layer [==================================================>]  98.3 kB/98.3 kB
1f1d61442629: Loading layer [==================================================>] 25.09 kB/25.09 kB
b54d98f0df17: Loading layer [==================================================>] 4.096 kB/4.096 kB
65bee51d110a: Loading layer [==================================================>] 4.096 kB/4.096 kB
1ba8a966b3b4: Loading layer [==================================================>]  7.68 kB/7.68 kB
4ac50d553d11: Loading layer [==================================================>] 1.663 MB/1.663 MB
ebc3da634138: Loading layer [==================================================>] 10.86 MB/10.86 MB
bb7b5a4b5dd4: Loading layer [==================================================>] 2.793 MB/2.793 MB
ba9c210caae7: Loading layer [==================================================>] 1.168 MB/1.168 MB
52fd1e89033c: Loading layer [==================================================>] 3.584 kB/3.584 kB
48898bafe35f: Loading layer [==================================================>] 1.024 kB/1.024 kB
af3fb45645e3: Loading layer [==================================================>] 3.584 kB/3.584 kB
a9909b0ff8f7: Loading layer [==================================================>] 1.024 kB/1.024 kB
5616b49877ba: Loading layer [==================================================>] 3.584 kB/3.584 kB
2edad6e6cbf3: Loading layer [==================================================>] 1.024 kB/1.024 kB
5986cc362b78: Loading layer [==================================================>] 1.024 kB/1.024 kB
5d582d248fb8: Loading layer [==================================================>] 1.024 kB/1.024 kB
3bf76c77263b: Loading layer [==================================================>] 4.608 kB/4.608 kB
20b53be287d2: Loading layer [==================================================>]  2.56 kB/2.56 kB
a79decdb3ab3: Loading layer [==================================================>]  7.68 kB/7.68 kB
7b8cd26f9476: Loading layer [==================================================>]  7.68 kB/7.68 kB
e5dfd53c6fbf: Loading layer [==================================================>]  7.68 kB/7.68 kB
215614cbd0b6: Loading layer [==================================================>]  7.68 kB/7.68 kB
a74369eee3b7: Loading layer [==================================================>] 5.104 MB/5.104 MB
0f1df4be16fc: Loading layer [==================================================>] 1.826 MB/1.826 MB
b99cd8cd4282: Loading layer [==================================================>] 1.421 MB/1.421 MB
d204fe0d8317: Loading layer [==================================================>] 2.048 kB/2.048 kB
ffb7ef5e4a4b: Loading layer [==================================================>] 27.99 MB/27.99 MB
97c780a6dcfc: Loading layer [==================================================>] 24.31 MB/24.31 MB
91c23a239dbe: Loading layer [==================================================>] 4.608 kB/4.608 kB
add64ffb4aa8: Loading layer [==================================================>] 4.096 kB/4.096 kB
949e4d2ebdca: Loading layer [==================================================>] 4.096 kB/4.096 kB
dd65a7e74c5f: Loading layer [==================================================>] 4.608 kB/4.608 kB
50f208947a96: Loading layer [==================================================>] 6.144 kB/6.144 kB
a9a1be29078a: Loading layer [==================================================>] 6.656 kB/6.656 kB
fc0c3f40f82c: Loading layer [==================================================>] 4.608 kB/4.608 kB
6cf8104f31e8: Loading layer [==================================================>] 6.144 kB/6.144 kB
efc8e77adf01: Loading layer [==================================================>] 3.584 kB/3.584 kB
4a19582d4cfb: Loading layer [==================================================>] 6.656 kB/6.656 kB
fffb1b952665: Loading layer [==================================================>] 1.024 kB/1.024 kB
Please run 'oscsa up' to start the software appliance

*************************************
For additional details, please see (/opt/oscsa_gateway/OSCSA_GATEWAY_README.txt) file
```

以上で導入完了です。

## Storage Cloud Software Applianceの使用
Storage Cloud Software Applianceを起動して使ってみます。

### Storage Cloud Software Applianceの起動
以下のコマンドで起動します。

- **oscsa up**

```bash
$ oscsa up
data args: -v /usr/share/oracle/ -v /usr/share/oracle/system/ -v /var/log/gateway
Creating OSCSA Volume
Applying configuration file to container
Starting OSCSA [oscsa_gw:1.0.11]
Management Console: https://oel72:32769
If you have already configured an OSCSA FileSystem via the Management Console,
you can access the NFS share using the following port.

NFS Port: 32770

Example: mount -t nfs -o vers=4,port=32770 oel72:/<OSCSA FileSystem name> /local_mount_point
```

Storage Cloud Software Applianceの管理コンソールが32769番ポートで起動し、NFSポートが32770で開きました。

### Storage Cloud Software Appliance管理コンソールへのアクセス
管理コンソールにアクセスします。

#### 1. 初期パスワード設定

![oscsa-05.png](https://qiita-image-store.s3.amazonaws.com/0/127983/3d086ee3-a2c1-06c6-fdf6-f9f047caec0f.png)

#### 2. ログイン

![oscsa-06.png](https://qiita-image-store.s3.amazonaws.com/0/127983/f601756b-8d47-a567-45fd-148252167498.png)

#### 3. ファイルシステムの作成

![oscsa-07.png](https://qiita-image-store.s3.amazonaws.com/0/127983/cdbbac32-08d5-9e40-3b9d-adc78729c93a.png)

#### 4. Storage Cloud Serviceのエンドポイント指定

![oscsa-08.png](https://qiita-image-store.s3.amazonaws.com/0/127983/46284047-4cbb-a156-f895-8a1f4ce766e1.png)

#### 5. Storage Cloud Serviceへのログイン設定

![oscsa-09.png](https://qiita-image-store.s3.amazonaws.com/0/127983/0a4f074c-b020-d843-4276-5c95982299a4.png)

#### 6. Storage Cloud Serviceのオプション指定

![oscsa-10.png](https://qiita-image-store.s3.amazonaws.com/0/127983/c892fc9e-49a5-e0e7-2492-f9f20d8f0170.png)

#### 7. ファイルシステムのオーナー設定

![oscsa-11.png](https://qiita-image-store.s3.amazonaws.com/0/127983/633be670-78d3-8930-103e-cd8c0dbb681b.png)

#### 8. 接続完了

![oscsa-12.png](https://qiita-image-store.s3.amazonaws.com/0/127983/fd790d15-f563-3566-e811-1706295a17b1.png)

### Storage Cloud Software Applianceのマウント
Storage Cloud Software ApplianceをNFSマウントします。

```bash
$ sudo mkdir /mnt/shinyayFS
$ sudo mount -t nfs -o vers=4,port=32770 oel72:/shinyayFS /mnt/shinyayFS
```
マウントした記憶領域を確認してみます。

```bash
$ df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             1.8G     0  1.8G   0% /dev
tmpfs                1.9G     0  1.9G   0% /dev/shm
tmpfs                1.9G  8.5M  1.8G   1% /run
tmpfs                1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/ol-root   42G  4.1G   38G  10% /
/dev/mapper/ol-home   21G  1.5G   19G   8% /home
/dev/sda1            497M  258M  240M  52% /boot
vagrant              224G  108G  117G  49% /vagrant
vagrant_data         224G  108G  117G  49% /vagrant_data
tmpfs                370M     0  370M   0% /run/user/1000
oel72:/shinyayFS     8.0T  4.0T  4.0T  50% /mnt/shinyayFS
```

4TBの使用可能領域が追加されている事がわかります。

# まとめ
オブジェクト・ストレージはAPI経由で使用するアプリケーションがあれば便利に使えますが、OS上からの操作でそのまま利用するには不便なところがあります。
このOracle Storage Cloud Software Applianceを使用すると、一般的なファイルシステムとしてオブジェクト・ストレージが利用できるのでStorage Cloud Serviceの活用方法が広がります。