20140807 linuxjosi-ceph

Post on 20-Jun-2015

939 views 7 download

description

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

Transcript of 20140807 linuxjosi-ceph

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

ハイロウテック

塩原 宏明2014/08/07

自己紹介

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

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

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

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

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

怪獣が熱い!

Cephも怪獣!

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

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

光の勇者しか試せない

気軽に遊べない?

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

そこで

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

DockerDocker

Docker=

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

ググってね。

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

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

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

適当なVPS

Cephのストレージ

Dockerで作るCephノード

おおよその手順(CentOS)

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

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

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

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

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

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

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

• 秒殺

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

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:

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

4. 各ノードを起動

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

#!/bin/shdocker run ¥

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

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

5. fuseでマウント

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

• これで完了!

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

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

ハマりポイント

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

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

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

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

やるメリット

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

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

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

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

やるデメリット

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

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

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

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

でも夏休みの自由研究

にはオススメ!

あなたも試しては?

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