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/* root@192.168.182.129:///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 root@192.168.182.129://etc/ceph/
[cphe@admin my-cluster]$ scp /home/cphe/my-cluster/ceph.client.admin.keyring root@192.168.182.129://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
下面介绍下使用文件系统方式挂载ceph
从17步骤下面继续
1、创建数据存储池、需要数据存储池和元数据存储池。
master节点执行
ceph osd pool create ceph_data 128
ceph osd pool create ceph_metadata 128
ceph fs new mycephfs ceph_data ceph_metadata
ceph fs ls (查看创建后的cephfs)
ceph mds stat(查看状态)
e2: 0/0/1 up (如果这样显示需要安装元数据服务器)
ceph-deploy mds create admin ceph-1 ceph-2
ceph mds stat (再次查看)
e6: 1/1/1 up {0=ceph-1=up:active}, 1 up:standby
ok现在可以再客户端挂载ceph
2、客户挂载ceph文件存储系统。
client节点执行
yum -y install ceph
mkdir /mnt/ceph
查看key
cat /etc/ceph/ceph.client.admin.keyring
[client.admin]
key = AQCqzSBgBAaVHBAA+v/aDLq6ctqhOJtzcVGjNA==
caps mds = "allow *"
caps mon = "allow *"
caps osd = "allow *"
mount -t ceph 192.168.182.150:6789:/ /mnt/ceph -o name=admin,secret=AQCqzSBgBAaVHBAA+v/aDLq6ctqhOJtzcVGjNA==
验证
df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 50G 1.6G 49G 4% /
devtmpfs devtmpfs 478M 0 478M 0% /dev
tmpfs tmpfs 489M 0 489M 0% /dev/shm
tmpfs tmpfs 489M 6.8M 482M 2% /run
tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/mapper/centos-home xfs 45G 33M 45G 1% /home
/dev/sda1 xfs 1014M 143M 872M 15% /boot
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/sdb1 xfs 15G 110M 15G 1% /var/lib/ceph/osd/ceph-1
192.168.182.150:6789:/ ceph 45G 328M 45G 1% /mnt/ceph
3、写入开机自动挂载。
client节点执行
192.168.182.150:6789:/ /mnt/ceph ceph defaults,name=admin,secret=AQCqzSBgBAaVHBAA+v/aDLq6ctqhOJtzcVGjNA== 0 0
把上面一行文件写到/etc/fstab文件里面
执行mount -a 验证
##多个客户端执行文件系统方式挂载ceph步骤即可(肯定是多个客户端,一个客户端用ceph就没有意义了)
wx:a1362623821