ceph部署实践(luminous版本)

作者:【吴业亮】

博客:https://wuyeliang.blog.csdn.net/

一、准备环境

4台adminos7环境,存储节点上两块磁盘(sda操作系统,sdb数据盘)

172.16.8.91 client 
172.16.8.92 admin
172.16.8.93 storage1
172.16.8.94 storage2
172.16.8.95 storage3

二、配置环境

1、修改主机名(对应节点上执行)

# hostnamectl  set-hostname client
# hostnamectl  set-hostname admin
# hostnamectl  set-hostname storage1
# hostnamectl  set-hostname storage2
# hostnamectl  set-hostname storage3

2、配置hosts文件(每个节点上均执行)

# cat <<"EOF">/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.8.91 client 
172.16.8.92 admin
172.16.8.93 storage1
172.16.8.94 storage2
172.16.8.95 storage3
EOF

3、修改sudo配置文件,注释下面行(每个节点上均执行)
执行visudo命令注释下面一行

#Defaults    requiretty

4、ceph的官方源在国外,网速比较慢,此处添加ceph源为阿里源(每个节点上均执行)

# cat </etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
END

5、关闭selinux和firewall(各个节点)

# setenforce 0
# sed -i  "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
# systemctl disable firewalld.service
# systemctl stop firewalld.service

6、各个节点更新系统(各个节点)

# yum update -y

7、创建用户并设置密码为Changeme_123(各个节点)

# useradd admin
# echo Changeme_123 | passwd --stdin admin

8、配置sudo权限(各个节点)

# echo -e 'Defaults:admin !requiretty\nadmin ALL = (root) NOPASSWD:ALL' | tee /etc/sudoers.d/ceph 
# chmod 440 /etc/sudoers.d/ceph

9、安装NTP(各个节点)

#  yum -y install ntp

修改配置文件/etc/ntp.conf

server NTP-server
注意:

NTP-server修改为自己的NTP服务器,如果局域网内无NTP服务器,此处可以用默认配置,采用centos官方ntp服务器

启动服务并设置开机启动

# systemctl start ntpd
# systemctl enable ntpd

查看ntp状态

# ntpq -p

注意:

如果ntp时钟不同步,后面ceph服务起不来!

9、重启(各个节点)

# reboot

三、安装和配置ceph(以下操作均在admin节点上执行)

1、配置互信

# su - admin 
$ ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
$ ssh-copy-id 172.16.8.91
$ ssh-copy-id 172.16.8.92
$ ssh-copy-id 172.16.8.93
$ ssh-copy-id 172.16.8.94
$ ssh-copy-id 172.16.8.95
exit

2、安装ceph-deploy包

$ sudo yum -y install ceph-deploy

3、创建配置文件目录

$ sudo mkdir /etc/ceph
$ cd /etc/ceph 
$ ceph-deploy new storage1

4、在各个节点上安装ceph包

$ ceph-deploy install admin client  storage1 storage2 storage3

5、设置monitor和key

$ ceph-deploy mon create-initial

6、启动osd,如果磁盘比较多,安装规划磁盘名称,重复执行即可

$ ceph-deploy disk zap  storage1:sdb 
$ ceph-deploy disk zap  storage2:sdb 
$ ceph-deploy disk zap  storage3:sdb
$ ceph-deploy --overwrite-conf  osd create  storage1:sdb
$ ceph-deploy --overwrite-conf  osd create  storage2:sdb
$ ceph-deploy --overwrite-conf  osd create  storage3:sdb

7、将配置文件拷贝到各个节点上

$ ceph-deploy admin client  storage1 storage2 storage3
$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

8、创建mon(一般为奇数个,此处为三个)

$ ceph-deploy --overwrite-conf mon create storage1
$ ceph-deploy --overwrite-conf admin storage1

$ ceph-deploy --overwrite-conf mon create storage2
$ ceph-deploy --overwrite-conf admin storage2

$ ceph-deploy --overwrite-conf mon create storage3
$ ceph-deploy --overwrite-conf admin storage3

9、验证

$ ceph health 
HEALTH_OK

四、ceph集群对外提供块存储服务(均在client上执行)
1、通过admin用户登录client节点

[admin@client ~]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

2、创建一个存储池

[admin@client ~]$ ceph osd pool create test 128

注意:

创建pool 通常在创建pool之前,需要覆盖默认的pg_num,官方推荐:
若少于5个OSD, 设置pg_num为128。
5~10个OSD,设置pg_num为512。
10~50个OSD,设置pg_num为4096。
超过50个OSD,可以参考pgcalc计算

3、创建一个10G的块

[admin@client ~]$ rbd create --size 10G disk01 --pool test

4、查看rbd

[admin@client ~]$ rbd ls -l 
NAME     SIZE PARENT FMT PROT LOCK
disk01 10240M          2

5、将10G的块映射到本地

[admin@client ~]$ sudo rbd map disk01 
/dev/rbd0

注意:
因为adminos7默认内核版本比较低,ceph的一些特性无法使用,需要手动禁用才能map成功。命令如下

$ rbd feature disable test/rbd exclusive-lock object-map fast-diff deep-flatten

6、查看映射

[admin@client ~]$ rbd showmapped 
id pool image  snap device
0  rbd  disk01 -    /dev/rbd0

7、格式化为xfs格式

[admin@client ~]$ sudo mkfs.xfs /dev/rbd0

8、挂载rbd0到本地的目录中

[admin@client ~]$ sudo mount /dev/rbd0 /mnt
[admin@client ~]$ df -hT 
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        26G  1.8G   25G   7% /
devtmpfs            devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs               tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs               tmpfs     2.0G  8.4M  2.0G   1% /run
tmpfs               tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda1           xfs      1014M  231M  784M  23% /boot
tmpfs               tmpfs     396M     0  396M   0% /run/user/0
/dev/rbd0           xfs        10G   33M   10G   1% /mnt

五、使用ceph集群提供cephfs文件系统

1、在admin节点上执行如下命令,启用storage1上的mds服务

[admin@admin ceph]$ ceph-deploy mds create storage1

2、在storage1节点上进行如下操作

[admin@storage1 ~]$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

创建名为cephfs_data的pool

[admin@storage1 ~]$ ceph osd pool create cephfs_data 128 
pool 'cephfs_data' created

3、创建名为cephfs_metadata的pool

[admin@storage1 ~]$ ceph osd pool create cephfs_metadata 128 
pool 'cephfs_metadata' created

4、启用pool

[admin@storage1 ~]$ ceph fs new cephfs cephfs_metadata cephfs_data 
new fs with metadata pool 2 and data pool 1

5、查看

[admin@storage1 ~]$ ceph fs ls 
name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]

6、查看mds状态

[admin@storage1 ~]$ ceph mds stat 
e4: 1/1/1 up {0=storage1=up:creating}

以下操作在client节点上

7、安装rpm包

[root@client ~]# yum -y install ceph-fuse

8、获取admin的key

[root@client ~]# ssh admin@storage1 "sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring" > admin.key 
[root@client ~]# chmod 600 admin.key

9、挂载

[root@client ~]# mount -t ceph storage1:6789:/ /mnt -o name=admin,secretfile=admin.key 
[root@client ~]# df -hT 
Filesystem          Type      Size  Used Avail Use% Mounted on
/dev/mapper/cl-root xfs        26G  1.9G   25G   7% /
devtmpfs            devtmpfs  2.0G     0  2.0G   0% /dev
tmpfs               tmpfs     2.0G     0  2.0G   0% /dev/shm
tmpfs               tmpfs     2.0G  8.4M  2.0G   1% /run
tmpfs               tmpfs     2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda1           xfs      1014M  231M  784M  23% /boot
tmpfs               tmpfs     396M     0  396M   0% /run/user/0
172.16.8.94:6789:/    ceph       78G   21G   58G  27% /mnt

附录:

卸载
在admin节点上执行卸载所以节点的rpm包

$ ceph-deploy purge admin storage1 storage2 storage3

在admin节点上执行,删除所以节点的配置

$ ceph-deploy purgedata admin storage1 storage2 storage3
 
$ ceph-deploy forgetkeys

你可能感兴趣的:(ceph)