虚拟机系统准备环境为:node
root@test3:~# cat /proc/version
Linux version 3.13.0-32-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014
python
设备共4台:git
192.168.0.100:做为部署节点和monitor节点。ubuntu
192.168.0.101:做为osd设备 0 ,挂载一个20G的硬盘vim
192.168.0.102:做为osd设备 1 ,挂载一个20G的硬盘ssh
192.168.0.103:做为客户端,在客户端能够访问虚拟rbd设备oop
将apt的源文件替换成以下地址,由于国外的源会比较慢。学习
root@ test100:~# cat /etc/apt/sources.listui
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiversespa
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
root@ test100:~# apt_get update
……………………………….
Reading package lists... Done
root@ test100:~#
登陆到100设备,做为部署设备,意思为用这台机器部署整个集群。
登陆设备后,建立ceph用户
useradd -d /home/ceph -m ceph
为ceph用户修改密码
passwd ceph
为用户添加root权限
sudo echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
sudo chmod 0440 /etc/sudoers.d/ceph
在两个osd 设备上创建相同的ceph用户 和密码
检查是否存在ssh服务
若是不存在,则须要安装一个
sudo apt-get install openssh-server
2. 修改hosts文件 ,修改后能够经过名字访问各个设备,不须要输入ip
n 修改hosts文件
$Vim /etc/hosts
root@test100:~/ceph-cluster# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu14
192.168.0.100 cephmon
192.168.0.101 osd1
192.168.0.102 osd0
192.168.0.103 client
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@cci-test3:~/ceph-cluster#
将这个hosts文件中添加的项 添加到osd的设备上
在100 上修改hostname
修改hostname 为cephmon
hostname cephmon
vim /etc/hostname
$cat /etc/hostname
Cephmon
该方法一样修改osd设备,osd设备的名字改为osd0,osd1。
3. 安装ceph-deploy
输入命令获取而且安装,共四条命令
A. wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
B. echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
C. sudo apt-get update
D. sudo apt-get install ceph-deploy
安装发生意外?提示如下信息:
python-setuptools but it is not going to be installed
表示当前 ceph-deploy依赖于 Python-setuptools,尝试安装Python-setuptools ,使用命令:agt-get install python-setuptools
再次发生意外提示:
python-pkg-resources (= 3.3-1ubuntu1) but 3.3-1ubuntu2 is to be installed
此次说明已经安装的Python 版本出现了不支持现象,先卸载已经安装的Python,使用命令:agt-get remove python
卸载后再次尝试安装 python-setuptools,
再次使用命令:agt-get install python-setuptools
最后再次尝试安装 ceph-deploy:
使用命令:sudo apt-get install ceph-deploy
发现此次能够成功安装ceph-deploy。
3. 用无密码的SSH链接到每一个Ceph节点来配置你的 ceph-deploy 管理节点. 保留密码为空。
建立密钥,提示输入的时候所有enter建。
ssh-keygen
将密钥拷贝到其余osd设备上去。
ssh-copy-id ceph@cephmon
ssh-copy-id ceph@osd0
ssh-copy-id ceph@osd1
4. 修改你的ceph-deploy 管理节点的 ~/.ssh/config 文件使它能像你建立的用户(好比, ceph)同样记录至Ceph节点 .可能不存在 这个配置文件,可是你能够建立一个这样的配置文件。配置文件中的内容以下:
root@ test100:~/ceph-cluster# cat ~/.ssh/config
Host cephmon
User ceph
Port 22
Host osd0
User ceph
Port 22
Host osd1
User ceph
Port 22
root@ test100:~/ceph-cluster#
5. 建立一个本身的集群目录
mkdir ceph-cluster
cd ceph-cluster
6. 建立一个新的集群(最后一个参数为100 的hostname)
ceph-deploy new cephmon
7.修改配置文件 ceph.conf
增长
osd pool default size = 3 -----》设置副本个数,不建议超过osd数量
osd pool default min size = 1 --->设置可写最小副本个数
osd pool default pg num = 333 ---》设置pool的pg个数
osd pool default pgp num = 333 --》设置pool的pgp_num 个数
8.分别在全部的设备上安装ceph
ceph-deploy install cephmon osd0 osd1
注意安装时可能会提示:
404 Not Found [IP: 91.189.91.14 80]
根据错误信息,定位是那一台设备除了问题,在该设备上输入命令确认:sudo apt-get install ceph,确认问题仍然是这个,须要更新apt-get,执行命令apt-get update。执行完成后 再次使用命令sudo apt-get install ceph。完成经过,说明问题解决。
9.在100 上建立监视线程,而且初始化:
ceph-deploy mon create-initial
10.修改密钥文件权限:
A chmod 777 ceph.client.admin.keyring
B sudo chmod 777 /etc/ceph/ceph.client.admin.keyring
11.列出osd0 ,osd1上面能够用的磁盘:
ceph-deploy disk list osd0 osd1
12.格式化osd0,osd1上的vdb盘为xfs
ceph-deploy disk zap osd0:vdb
ceph-deploy disk zap osd1:vdb
13.在osd设备上建立osd 线程:
ceph-deploy osd create osd0:vdb
ceph-deploy osd create osd1:vdb
14.拷贝配置文件到每一台机器上
ceph-deploy admin cephmon osd0 osd1。
修改osd的重量和拓扑位置信息:
ceph osd crush set osd.0 1.0 root=default room=room0 host=host0
ceph osd crush set osd.1 1.0 root=default room=room0 host=host1
15. 查看ceph的安装状态:
Ceph –s
16.先建立一个pool,再 建立一个镜像,该镜像能够提供给用户使用
Rados create pool data
Rados lspools
rbd create foo --size 1024
客户端挂载 ceph
1.在管理节点在hosts中添加 192.168.0.103 client
2. 在管理节点为client 安装ceph,最后一个参数为主机名代替ip地址。
ceph-deploy install client //安装客户端的ceph
ceph-deploy admin cephclient //将客户端添加到当前的集群中
rbd create testdevice --size 40960 //建立块设备
sudo rbd map testdevice --pool rbd --name client.admin //map rbd设备为块设备
sudo mkfs.ext4 -m0 /dev/rbd/rbd/testdevice //格式化map以后的块设备
A sudo mkdir /mnt/ceph-block-devicesudo //建立挂载目录
B sudo mount -t ext4 /dev/rbd/rbd/testdevice /mnt/ceph-block-devicesudo //挂载目录
C cd /mnt/ceph-block-devicesudo //进入到文件夹中,能够存取文件操做
总结:
这个是我第一次完成搭建ceph环境以后写的,在搭建ceph环境以前,对ceph不是很了解,因此搭建过程当中反反复复,并且会遇到不少问题,好比搭建环境后ceph -s 命令查询到大部分的pg都是非正常的状况,花了一些时间去看了pg的东西,而后再反反复复的搭建,直到可以学习怎么搭建一个健康的ceph环境,因此最初使用虚拟机来玩比较方便,清除环境完全。
我也是正在学习ceph的过程当中,若是有什么问题 很欢迎和你们一块儿讨论。你们要是发现了问题欢迎及时纠正,留言