实验室要求开始学习Ceph,我也开始学着自己搭建Ceph,中间走了很多冤枉路,在此我也和大家分享一下!
(之前在网上找的搭建教程ceph版本都是ceph 0.82之前的,ceph 0.82后 不支持mkcephfs 命令初始化ceph环境(如果搭建0.82版本之前的ceph,就得自己编译ceph源码,很麻烦,中途会出现各种错误,安装各种依赖包,用户体验极差!故建议直接ceph-deploy搭建)
搭建时间:2015.08.22 实验步骤:
第一步~~~.准备 4个Ubuntu 14.04 Server 虚拟机(可以使用VMware或者VirtualBox)
配置好每个虚拟机的IP 以及hostname (很重要!)
我的四台虚拟机配置如下:(ip根据个人的网络环境配置,记得虚拟机网络选择桥接模式)
①虚拟机1 : hostname:ceph ;IP :10.10.211.155;这台虚拟机对应下图admin-node节点 用来安装ceph-deploy 进行ceph部署使用,基本上大部分操作都在这台机器上
②虚拟机2: hostname:ceph1 ;IP :10.10.211.151;这台虚拟机对应下图node1节点,用来安装monitor节点
③虚拟机3: hostname:ceph2 ;IP :10.10.211.152;这台虚拟机对应下图node2节点,用来安装osd节点
④虚拟机4: hostname:ceph3 ;IP :10.10.211.153;这台虚拟机对应下图node3节点,用来安装osd节点
配置好后ping www.baidu.com 看是否可以上网。
第二步~~~.在虚拟机1上也就是ceph(hostname是ceph)上执行以下三个命令安装cephdeploy:
wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
echo deb http://ceph.com/debian-hammer/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt-get update && sudo apt-get install ceph-deploy
第三步~~~.在四台虚拟机上都安装ntp与openssh-server ,实现时间同步以及ceph 节点ssh访问ceph1 ceph2 ceph3节点
四台虚拟机上都执行以下2个命令:
sudo apt-get install ntp
sudo apt-get install openssh-server
第四步~~~.在ceph1 ceph2 ceph3 虚拟机上新建一个用户 (我在三台虚拟机上全是新建的cephuser用户)具有sudo权限
在虚拟机ceph上使用ssh链接ceph1 ceph2 ceph3虚拟机
(注意:先在虚拟机ceph里面配置好hosts)
在虚拟机ceph上执行:
sudo vim /etc/hosts
在后面添加:
10.10.211.151 ceph1
10.10.211.152 ceph2
10.10.211.153 ceph3
如下图:
使用虚拟机ceph ssh链接ceph1 (usercz是我建虚拟机的时候创建的默认用户,cephuser是我新建的用户)
ssh usercz@ceph1执行:
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sudo chmod 0440 /etc/sudoers.d/cephuser
链接ceph2 ceph3 执行类似操作!
第五步~~~.ceph虚拟机生成ssh-keygen 并复制到ceph1 ceph2 ceph3 节点上
在ceph上执行:(执行ssh-keygen后全部按回车键)
ssh-keyge
(全按回车键,默认)
Generating public/private key pair.
Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-admin/.ssh/id_rsa.
Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.
接着继续执行:
ssh-copy-id cephuser@ceph1
ssh-copy-id cephuser@ceph2
ssh-copy-id cephuser@ceph3
修改 ~/.ssh/config
vim ~/.ssh/config
在config里面加上:
第六步~~~. 在ceph(admin节点) 创建my-cluster 目录并进入
mkdir my-cluster
cd my-cluster
(注意下面的操作都在此目录下执行,有些配置文件会生成在里面)
执行:
ceph-deploy new ceph1
会在my-cluster下生成三个文件Ceph configuration file, a monitor secret keyring, and a log file
修改Ceph configuration file文件
vim ceph.conf
并在后面加上 第一个参数2是副本数量,第二个2000是 日志大小约为2G
osd pool default size = 2
osd journal size = 2000
第七步~~~.在ceph1 ,ceph2 ,ceph3 三个节点上安装ceph
在ceph节点上执行:
ceph-deploy install ceph1 ceph2 ceph3
(可能会报错,大部分是网络问题,继续重复执行就是!直到成功为止!可以选择一个节点一个节点的安装)
第八步~~~.在ceph上执行:
ceph-deploy mon create-initial
会在my-cluster目录下生成四个文件
第九步~~~.在ceph2 ceph3节点上创建osd 每个节点创建一个osd文件目录
ssh ceph2
sudo mkdir /var/local/osd0
exit
ssh ceph3
sudo mkdir /var/local/osd1
exit
第十步~~~. 继续在ceph上执行:
准备osd 命令:
ceph-deploy osd prepare ceph2:/var/local/osd0 ceph3:/var/local/osd1激活osd命令:
ceph-deploy osd activate ceph2:/var/local/osd0 ceph3:/var/local/osd1
执行以下两条:
ceph-deploy admin ceph ceph1 ceph2 ceph3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
最后一步~~~.最后在ceph执行:ceph health 命令,不出意外就会输出HEALTH_OK ,恭喜你 ceph三节点的集群安装成功!!!可以继续进一步学习ceph了!!