SlideShare a Scribd company logo
1 of 26
Download to read offline
まったく意味ないけど
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:centos6
MAINTAINER hilotech.jp
# networking
RUN echo -e "NETWORKING=yes" > /etc/sysconfig/network
EXPOSE 6789
# timezone
RUN ¥
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/sh
docker 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と一緒に構築しないと…
• 「金があれば自宅にラックサーバー置け
るのに!」という意味不明な物欲がわく
でも
夏休みの自由研究
には
オススメ!
あなたも試しては?
ご清聴
ありがとう
ございました

More Related Content

What's hot

楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜Akira Ouchi
 
簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門Akira Ouchi
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化COLOPL, Inc.
 
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Akira Ouchi
 
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情zgock
 
Eject探検隊@北陸1
Eject探検隊@北陸1Eject探検隊@北陸1
Eject探検隊@北陸1ahiru3
 
20160221-UnityAassetTouchAndTry-in-FukuokaUnity
20160221-UnityAassetTouchAndTry-in-FukuokaUnity20160221-UnityAassetTouchAndTry-in-FukuokaUnity
20160221-UnityAassetTouchAndTry-in-FukuokaUnityTakashi Jona
 
20160306-UnityAassetTouchAndTry-in-HimeUni
20160306-UnityAassetTouchAndTry-in-HimeUni20160306-UnityAassetTouchAndTry-in-HimeUni
20160306-UnityAassetTouchAndTry-in-HimeUniTakashi Jona
 
GearVR向けのゲームを作ってみた際にわかったこと
GearVR向けのゲームを作ってみた際にわかったことGearVR向けのゲームを作ってみた際にわかったこと
GearVR向けのゲームを作ってみた際にわかったことmao_
 
天体を静止画として 長時間撮影できる装置 の紹介
天体を静止画として長時間撮影できる装置 の紹介天体を静止画として長時間撮影できる装置 の紹介
天体を静止画として 長時間撮影できる装置 の紹介Masaki Otsuki
 
Puppet×docker 夢の競演
Puppet×docker 夢の競演Puppet×docker 夢の競演
Puppet×docker 夢の競演Ryo Sugahara
 
FPGAでmrubyを動かす
FPGAでmrubyを動かすFPGAでmrubyを動かす
FPGAでmrubyを動かすShuta Kimura
 

What's hot (15)

楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
楽しく使おう・始めよう!Raspberry Pi入門〜実践編〜
 
簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門簡単に楽しくはじめよう!Raspberry Pi入門
簡単に楽しくはじめよう!Raspberry Pi入門
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
 
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
 
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
Eject探検隊@北陸1
Eject探検隊@北陸1Eject探検隊@北陸1
Eject探検隊@北陸1
 
20160221-UnityAassetTouchAndTry-in-FukuokaUnity
20160221-UnityAassetTouchAndTry-in-FukuokaUnity20160221-UnityAassetTouchAndTry-in-FukuokaUnity
20160221-UnityAassetTouchAndTry-in-FukuokaUnity
 
20160306-UnityAassetTouchAndTry-in-HimeUni
20160306-UnityAassetTouchAndTry-in-HimeUni20160306-UnityAassetTouchAndTry-in-HimeUni
20160306-UnityAassetTouchAndTry-in-HimeUni
 
GearVR向けのゲームを作ってみた際にわかったこと
GearVR向けのゲームを作ってみた際にわかったことGearVR向けのゲームを作ってみた際にわかったこと
GearVR向けのゲームを作ってみた際にわかったこと
 
天体を静止画として 長時間撮影できる装置 の紹介
天体を静止画として長時間撮影できる装置 の紹介天体を静止画として長時間撮影できる装置 の紹介
天体を静止画として 長時間撮影できる装置 の紹介
 
Puppet×docker 夢の競演
Puppet×docker 夢の競演Puppet×docker 夢の競演
Puppet×docker 夢の競演
 
エンジニア勉強会_Node.js
エンジニア勉強会_Node.jsエンジニア勉強会_Node.js
エンジニア勉強会_Node.js
 
FPGAでmrubyを動かす
FPGAでmrubyを動かすFPGAでmrubyを動かす
FPGAでmrubyを動かす
 

20140807 linuxjosi-ceph