ceph集群搭建手册

ceph存储集群安装(按照文档步骤就可以搭建成功)
文档分别坐了创建ceph集群,使用客户端挂载ceph块存储
#####跟着文档部署的时候一定要仔细看每一个字一定要一定要一定要(每一个字都很重要)
#私自转载请联系博主否则必定追究版权 下方有微信
系统环境:
除客户端全部为centos7每台机器有两个磁盘第二个磁盘作为ceph存储磁盘

IP 节点名称
192.168.182.150 admin
192.168.182.151 ceph-1
192.168.182.152 ceph-2
192.168.182.129 client

文档内写的三个节点都需要执行指的是admin、ceph-1、ceph-2三个节点

1、设置三个节点一个客户端的主机名称。
admin节点执行

[root@admin ~]# hostnamectl set-hostname admin

ceph-1节点执行

[root@ceph-1 ~]# hostnamectl set-hostname ceph-1

ceph-2节点执行

[root@ceph-2 ~]# hostnamectl set-hostname ceph-2

client客户端执行

[root@client ~]# hostnamectl set-hostname client

2、把三个节点主机名称写入hosts文件,并且关闭firewalld、selinux(临时关闭)。
#三个节点都需要执行

echo -e "192.168.182.150 admin\n192.168.182.151 ceph-1\n192.168.182.152 ceph-2" >>/etc/hosts
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

3、避免时间出错,安装ntp服务作为时间管理。
#三个节点都需要执行

[root@admin ~]# yum -y install ntp
[root@admin ~]# ntpdate edu.ntp.org.cn

4、由于ceph不能用root用户执行,为ceph创建普通用户、设置密码(为了安全起见我们也不设置为ceph)。
#三个节点都需要执行

useradd cphe
echo 123456|passwd --stdin cphe

5、确认新创建的用户都有sudo权限

echo "cphe ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cphe
sudo chmod 0440 /etc/sudoers.d/cphe

6、设置免密钥登陆(因为 后面ceph-deploy的时候不会提示输入密码)。
(以下命令不可直接复制ssh-keygen 直接回车ssh-copy-id cphe@ceph-1 输入cphe密码)

admin节点执行(执行此命令的时候需要切换到刚才创建的用户也就是cphe)

[cphe@admin my-cluster]$ ssh-keygen
[cphe@admin my-cluster]$ ssh-copy-id -i /home/cphe/.ssh/id_rsa.pub cphe@admin
[cphe@admin my-cluster]$ ssh-copy-id -i /home/cphe/.ssh/id_rsa.pub cphe@ceph-1 
[cphe@admin my-cluster]$ ssh-copy-id -i /home/cphe/.ssh/id_rsa.pub cphe@ceph-2

7、设置yum源并安装ceph的key
#三个节点都需要执行

sudo yum install -y yum-utils && sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/ && sudo yum install --nogpgcheck -y epel-release && sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 && sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
echo -e "[ceph-noarch]\nname=Ceph noarch packages\nbaseurl=http://download.ceph.com/rpm-15.2.8/el7/noarch/\nenabled=1\ngpgcheck=1\ntype=rpm-md\ngpgkey=https://download.ceph.com/keys/release.asc" > /etc/yum.repos.d/ceph.repo

8、安装部署工具ceph-deploy 管理ceph集群并创建集群目录(注意切换到刚才创建的用户)
admin节点执行

[root@admin ~]# yum -y install python-pip  ceph-deploy
[root@admin ]# su - cphe
[cphe@admin ~]$ mkdir my-cluster
[cphe@admin ~]$ cd my-cluster/

9、使用ceph-deploy进行节点部署(注意切换到刚才创建的用户)
admin节点部署

[cphe@admin my-cluster]$ ceph-deploy new admin ceph-1 ceph-2
##执行完之后可以ls查看下当前目录有集群的配置文件和部署日志

10、配置集群网络和共有网络
admin节点执行

[cphe@admin my-cluster]$ echo -e "public network = 192.168.182.0/24\ncluster network = 192.168.182.0/24"  >> /home/cphe/my-cluster/ceph.conf

11、开始为各个节点安装ceph ceph-radosgw (官方给的命令是ceph-deploy install admin ceph-1 ceph-2但是由于网络太慢无法安装采用阿里云源的办法安装)
##三个节点都需要执行(注意admin节点上面要使用sudo 或者另外开启一个root窗口)

##下载阿里云的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
##添加阿里源:
echo -e "[ceph]\nname=ceph\nbaseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/\ngpgcheck=0\n[ceph-noarch]\nname=cephnoarch\nbaseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/\ngpgcheck=0" >/etc/yum.repos.d/ceph.repo
yum -y install ceph ceph-radosgw

12、配置初始 monitor(s)、并收集所有密钥

[cphe@admin my-cluster]$ ceph-deploy mon create-initial

13、用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。
admin节点执行

[cphe@admin my-cluster]$ ceph-deploy admin admin ceph-1 ceph-2

14、格式化磁盘并创建osd

[cphe@admin my-cluster]$ ceph-deploy disk zap admin:sdb 
#执行上面命令会出错,我查看了我的ceph-deploy版本是2.0版本的
#卸载2.0版本的ceph-deploy
#安装ceph-deploy=1.5.39 
[cphe@admin my-cluster]$ sudo yum -y remove ceph-deploy
[cphe@admin my-cluster]$ sudo pip install ceph-deploy==1.5.39   
[cphe@admin my-cluster]$ ceph-deploy disk zap admin:sdb
[cphe@admin my-cluster]$ ceph-deploy disk zap ceph-1:sdb 
[cphe@admin my-cluster]$ ceph-deploy disk zap ceph-2:sdb
[cphe@admin my-cluster]$ ceph-deploy osd create admin:sdb
[cphe@admin my-cluster]$ ceph-deploy osd create ceph-1:sdb
[cphe@admin my-cluster]$ ceph-deploy osd create ceph-2:sdb

15、给文件增加可读权限并查看集群状态
admin节点执行

[cphe@admin my-cluster]$ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
[cphe@admin my-cluster]$ ceph health
HEALTH_OK##这是返回值
HEALTH_WARN 64 pgs degraded; 64 pgs stuck unclean; 64 pgs undersized##也有可能是这样的返回值继续就好

16、为客户端配置yum源并且安装ceph
###注意是在哪台机器上执行的

[cphe@admin my-cluster]$ scp /etc/yum.repos.d/* [email protected]:///etc/yum.repos.d/
[root@client ~]# yum -y install ceph

17、为客户端拷贝ceph配置文件和key文件
admin节点执行

[cphe@admin my-cluster]$ scp /home/cphe/my-cluster/ceph.conf [email protected]://etc/ceph/
[cphe@admin my-cluster]$ scp /home/cphe/my-cluster/ceph.client.admin.keyring [email protected]://etc/ceph/

18、查看集群快设备池并创建块设备池也可以使用默认的rbd
client节点执行

[root@client ~]# ceph osd lspools
0 rbd,
[root@client ~]# ceph osd pool create wlrbd 128
pool 'wlrbd' created
[root@client ~]# ceph osd lspools              
0 rbd,1 wlrbd,

19、创建块设备并且查看
client节点执行

[root@client ~]# rbd create rbd1 --size 10240 --name client.admin
[root@client ~]# rbd ls
rbd1
[root@client ~]# rbd ls -p rbd --name client.admin
rbd1
以上两种办法都可以查看因为我们就有一个rbd1的块设备
[root@client ~]# rbd list --name client.admin  ##这是查看所有rbd设备
rbd1
[root@client ~]# [root@client ~]#  rbd --image rbd1 info --name client.admin ##查看详情
rbd image 'rbd1':
        size 10240 MB in 2560 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.37746b8b4567
        format: 2
        features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
        flags: 

20、在 ceph-client 节点上,把 image 映射为块设备并且格式化设备。(会报错内核不支持某些功能跟据上文保留layering功能其他禁用掉就可以)
client节点执行

[root@client ~]# rbd map --image rbd1 --name client.admin
rbd: sysfs write failed
RBD image feature set mismatch. You can disable features unsupported by the kernel with "rbd feature disable".
In some cases useful info is found in syslog - try "dmesg | tail" or so.
rbd: map failed: (6) No such device or address
[root@client ~]# rbd feature disable rbd1 exclusive-lock  object-map fast-diff  deep-flatten
[root@client ~]# rbd map --image rbd1 --name client.admin                                   
/dev/rbd0
[root@client ~]# rbd showmapped --name client.admin ##查看设备信息
id pool image snap device    
0  rbd  rbd1  -    /dev/rbd0 
[root@client ~]# mkfs.ext4 -m0 /dev/rbd0

21、创建挂载磁盘目录并挂在磁盘
client节点执行

[root@client ~]# mkdir /mnt/ceph-1
[root@client ~]# mount /dev/rbd0 /mnt/ceph-1
[root@client ~]# df -hT /mnt/ceph-1
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/rbd0      ext4  9.8G   37M  9.7G    1% /mnt/ceph-1

wx:a1362623821

你可能感兴趣的:(存储,linux,云计算,运维)