20140807 linuxjosi-ceph

26
まったく意味ないけど 5分でDocker使って Ceph体験しようぜ! ハイロウテック 塩原 宏明 2014/08/07

description

なんかCephの話です。まゆつばですが。

Transcript of 20140807 linuxjosi-ceph

Page 1: 20140807 linuxjosi-ceph

まったく意味ないけど5分でDocker使ってCeph体験しようぜ!

ハイロウテック

塩原 宏明2014/08/07

Page 2: 20140807 linuxjosi-ceph

自己紹介

• ハイロウテック(http://www.hilotech.jp)代表社員 塩原 宏明

• このあいだまでホスティング系の会社にいました

• 8月1日からなぜか人形衣装を売る(+IT系全般をやる)会社を立てて独立しました

Page 3: 20140807 linuxjosi-ceph

スーパードルフィー対応 ©ボークス社

Page 4: 20140807 linuxjosi-ceph
Page 5: 20140807 linuxjosi-ceph

この夏、怪獣が熱い!この夏、

怪獣が熱い!

Page 6: 20140807 linuxjosi-ceph

Cephも怪獣!

Page 7: 20140807 linuxjosi-ceph

怪獣を自宅で飼うのはたいへん

分散ストレージなんて、自宅にラックサーバーがあるような

光の勇者しか試せない

気軽に遊べない?

Page 8: 20140807 linuxjosi-ceph

VPSくらいで試せたらいいのにー

Page 9: 20140807 linuxjosi-ceph

そこで

もう一匹の怪獣を召喚してみた

Page 10: 20140807 linuxjosi-ceph

DockerDocker

Page 11: 20140807 linuxjosi-ceph

Docker=

コンテナ仮想化(以下略)

ググってね。

個人的には「お金のない人の仮想化」という見方ができると思う

Page 12: 20140807 linuxjosi-ceph

Ceph対Docker南海の大決斗Ceph対Docker南海の大決斗

Page 13: 20140807 linuxjosi-ceph

こんなふうにできたら、Cephを気楽に試せるんじゃない?

適当なVPS

Cephのストレージ

Dockerで作るCephノード

Page 14: 20140807 linuxjosi-ceph

おおよその手順(CentOS)

1.ホスト側に ceph,ceph-deploy,ceph-fuse をインストール

2. Dockerfileで MON も OSD も MDS も兼用するイメージをビルド

3.ループバックファイルシステムを各ノードインスタンス用に作成

4. Dockerインスタンスに前項FSを –v オプションで割り当てて起動

5.各インスタンスに ceph-deploy をかましていく

6. ceph-fuseでホストにマウントする

Page 15: 20140807 linuxjosi-ceph

1. ホスト側のインストール

• 秒殺

# yum –y install ceph ceph-deploy ceph-fuse

Page 16: 20140807 linuxjosi-ceph

2. Dockerfileの例

• 長い! 後日 http://www.hilotech.jp/あたりからgithubをごらんください!

FROM centos:centos6MAINTAINER hilotech.jp

# networkingRUN echo -e "NETWORKING=yes" > /etc/sysconfig/networkEXPOSE 6789

# timezoneRUN ¥

echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock && ¥rm -f /etc/localtime && ¥ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# packages:

Page 17: 20140807 linuxjosi-ceph

3. loop用の疑似ファイルシステム作成

• 空っぽのファイルをつくって、それをcephノード(コンテナ)からストレージデバイスに見えるようにする

# dd if=/dev/zero of=/mnt/ceph0 bs=1024000 ¥count=3000

# mkfs.ext4 /mnt/ceph0# mkdir /mnt/ceph0d# mount -o loop -t ext4 /mnt/ceph0 /mnt/ceph0d

Page 18: 20140807 linuxjosi-ceph

4. 各ノードを起動

• -v オプションでディスクを割り当てる以外はたいしたことない

#!/bin/shdocker run ¥

-h ceph01 ¥-p 6789:6789 ¥-v /mnt/ceph0d:/var/lib/ceph/osd/ceph-0 ¥-d hilotech/ceph-nodes

Page 19: 20140807 linuxjosi-ceph

5. ceph-deploy

• デプロイスクリプトなのに手順が多くて泣ける

• Pythonのエラーがうるさいので自罰思考になる

# mkdir ~/mycluster# cd !$# ceph-deploy new ceph01# ceph-deploy install ceph01# ceph-deploy mon create ceph01# ceph-deploy gatherkeys ceph01 # ceph-deploy osd create ¥

ceph01:/var/lib/ceph/osd/ceph-0# ceph-deploy admin ceph01# ceph-deploy mds create ceph01

Page 20: 20140807 linuxjosi-ceph

5. fuseでマウント

• /mnt/myfuse 以下でCephのボリュームを使える

• これで完了!

# mkdir /mnt/myfuse# ceph-fuse -m ceph01:6789 /mnt/myfuse

Page 21: 20140807 linuxjosi-ceph

なんとかできた!みたい…自信ない

Page 22: 20140807 linuxjosi-ceph

ハマりポイント

• ceph-deployが意外にめんどくさい!

• ググるとバージョンとディストリビューションが入り混じって、情報が混乱している!(Google脳キケン!)

• ホストもコンテナもrootでやらないとなんか詰まった!

• なんか「KVMだとダメなところがある」という話(Xenはだいじょうぶ)も聞いたが、よくわからない|ω・)…

Page 23: 20140807 linuxjosi-ceph

やるメリット

• 分散ストレージを自分でセットアップする経験が得られる

– 900円くらいから…A○S使えばタダです

• 総合的なスキルが身につく(のか?)

• 非リア充が夏休みをつぶせる

Page 24: 20140807 linuxjosi-ceph

やるデメリット

• 当然ながら、なんのパフォーマンス向上にもつながらない

– コンテナ仮想化+ループバックFS…• 誰の役にも立たない

– OpenStackと一緒に構築しないと…

• 「金があれば自宅にラックサーバー置けるのに!」という意味不明な物欲がわく

Page 25: 20140807 linuxjosi-ceph

でも夏休みの自由研究

にはオススメ!

あなたも試しては?

Page 26: 20140807 linuxjosi-ceph

ご清聴ありがとうございました