1. Qiita
  2. 投稿
  3. rancher

【Docker】RancherOSで本格的な自宅サーバーを構築しよう(4) ~ GlusterFSを使ってデータを共有+永続化しよう ~

  • 10
    いいね
  • 2
    コメント

GlusterFSを使ってデータを永続化しよう

コンテナ間でデータを共有・永続化することができる

rancher-docker.png

関連記事

使うライブラリ(CATALOG一覧)

glusterFS

community-glusterfs.svg.png

  • GlusterFSは複数のストレージノードのファイルシステムを論理的に統合しボリュームを作成します

convoy-gluster

library-convoy-nfs.svg.png

  • 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

convoy-glusterのインストール

  • CATALOGから「Convoy GlusterFS」を選択
  • GlusterFS Volumeは先ほどの"my_vol"
  • GlusterFS serviceを選択
  • done(どーん)

Screen Shot 2016-06-07 at 17.18.41.png

volume_driverの名前を確認しとく

  • INFRASTRUCTURE -> STORAGE POOLS
  • ○Active 「convoy-gluster」<- これ

Screen Shot 2016-06-07 at 17.04.01.png

サンプルサービスで確認

  • 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

  • コンテナを「scale+」で2個以上に増やしてみる

Screen Shot 2016-06-07 at 17.15.25.png

  • INFRASTRUCTURE -> STORAGE POOLSで「test_volume」を確認

  • Execute Shellからコンテナに侵入
    Screen Shot 2016-06-07 at 17.13.28.png

    $ 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の再インストールのときとかは、ここから復元できるようにする
    • 更新を確認次第、手順を書く予定です