#GlusterFSを使ってデータを永続化しよう
コンテナ間でデータを共有・永続化することができる
関連記事
##使うライブラリ(CATALOG一覧)
glusterFS
- GlusterFSは複数のストレージノードのファイルシステムを論理的に統合しボリュームを作成します
convoy-gluster
- GlusterFSというファイル分散システムを利用して、コンテナの共有volumeを作ることができる
- これを使ってコンテナ間のデータのやり取りや共有、永続化、スナップショット保存、復元を行う
##glusterfsのインストール
-
CATALOGから「Gluster FS」を選択
-
volume Nameを設定
適当に"my_vol"
-
gluster networking modeを設定
rancherのネットワーク上でGlusterを使用するには、デフォルトの設定のままでOK。 Glusterを公開したい場合は、hostを選択していいが、Glusterがホストにアクセスできるものにアクセスできるようになることに、注意してください。信頼されていない設定にこの設定を使用しないでください。
-
Done(どーん)
![Screen Shot 2016-06-07 at 17.17.12.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F62822%2Fc0ce3f4b-5ca2-4548-9f74-c71788a0b13a.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=636098c6934d514d955d18c5b142de0a)
##convoy-glusterのインストール
- CATALOGから「Convoy GlusterFS」を選択
- GlusterFS Volumeは先ほどの"my_vol"
- GlusterFS serviceを選択
- done(どーん)
![Screen Shot 2016-06-07 at 17.18.41.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F62822%2F159621ea-6646-a292-5780-cc8edda30e6e.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=5dbdd2a74b3f3f9a040e661ef6c5bb90)
##volume_driverの名前を確認しとく
- INFRASTRUCTURE -> STORAGE POOLS
- ○Active 「convoy-gluster」<- これ
![Screen Shot 2016-06-07 at 17.04.01.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F62822%2F3e711585-42dc-a04a-dc63-6781d99f6474.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e434a342a2f0fc9a72c7a870bae0568a)
##サンプルサービスで確認
-
APPLICATIONS -> add stack
-
docker-compose.yml
test: tty: true image: ubuntu:14.04.3 stdin_open: true volumes: - test_volume: testvolume volume_driver: convoy-gluster
-
Done(どーん)
![Screen Shot 2016-06-07 at 17.20.41.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F62822%2Fea1c77c3-c72e-88be-a51e-1804bfdcabab.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e316df3eed2c8ee20cf2ce7114f92c64)
- コンテナを「scale+」で2個以上に増やしてみる
![Screen Shot 2016-06-07 at 17.15.25.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F62822%2F921d9bba-ac0a-61a6-6036-4ae6d48535e1.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=96868ce096c5c1680c1450dcab1dee0d)
-
INFRASTRUCTURE -> STORAGE POOLSで「test_volume」を確認
-
Execute Shellからコンテナに侵入
![Screen Shot 2016-06-07 at 17.13.28.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F62822%2Fa6faa216-5762-0a7e-951d-69499da526aa.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=afeb41ac2b33b06acee8e1b3c35f27b7)
```
$ cd testvolume
$ vi test.yml
$ ls
test.yml
```
-
別のコンテナでExecute Shell
$ cd testvolume $ ls test.yml
##wordpressのMySQLのデータを永続化させてみる
docker-compose.yml
wordpress:
image: wordpress
links:
- db:mysql
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: example
volumes:
- wp_data:/var/lib/mysql
- mysql_conf:/etc/mysql/conf.d
volume_driver: convoy-gluster
これでコンテナが再起動しても、agentが再起動してもデータは消えなくなった!!
##今後コンテナを作る時
- volume_driver に convoy-gluster を指定してvolumesを書くとデータが共有される。
##convoyでスナップショットをとって復元できるようにする
- 現在対応中らしくてまだできないらしい
- やりたいこと
- 定期的にスナップショットをとってS3とかに貯めておく
- サーバーのfileシステム自体がダウンした時などOSの再インストールのときとかは、ここから復元できるようにする
- 更新を確認次第、手順を書く予定です