k8s容器DevOps/SRE存储

一文看懂ceph部署

2021-07-18  本文已影响0人  sknfie

环境配置

准备环境
系统版本:Centos7.2 x86_64 server
硬件配置:5台vm,1核512mb内存、1g内存,每台node角色的机器至少挂载一块不低于5G的空闲为osd存储

环境规划

主机名                              ip                         role
admin                    192.168.43.10            admin(安装ceph-deploy)
node1                    192.168.43.20           mon / mgr /osd
node2                    192.168.43.30            osd
node3                    192.168.43.40           osd
ceph-client            192.168.43.50

配置yum源(所有节点都需要配置)

yum -y install wget
cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo

7.repo

yum clean all
yum makecache

修改主机名(所有节点都需要配置)

hostnamectl set-hostname admin
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname ceph-client

配置hosts解析(所有节点都需要配置)

cat >>/etc/hosts<<EOF
192.168.43.10 admin
192.168.43.20 node1
192.168.43.30 node2
192.168.43.40 node3
192.168.43.50 ceph-client
EOF

关闭所有机器的防火墙和selinux(所有节点都需要配置)

setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config 
systemctl stop firewalld
systemctl disable firewalld

实现ssh无密码登陆(admin节点操作)

ssh-keygen
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
ssh-copy-id ceph-client

添加下载源,安装ceph-deploy(admin节点)

vi /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc

yum makecache
yum -y install ceph-deploy

安装ntp(所有节点都需要配置)

yum -y install ntp
vi /etc/ntp.conf
server time1.aliyun.com iburst
systemctl restart ntpd
systemctl enable ntpd

部署Ceph集群

1、创建ceph操作的目录
mkdir my-cluster #之后,所有ceph-deploy命令操作必须在该目录下执行

2、创建集群
首先在这里要先下载一个包并安装,否则后面会报错

上传软件包distribute-0.7.3.zip到服务器上
unzip distribute-0.7.3.zip
cd distribute-0.7.3
python setup.py install

创建集群
ceph-deploy new node1
[root@admin my-cluster]# ls
ceph-deploy-ceph.log  ceph.conf  ceph.mon.keyring

3、手动不是安装三台机器分别创建:三台node节点操作相同
3.1、安装epel源

yum -y install epel-release

3.2、配置ceph源

vi /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=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

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

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

3.3、分别在node节点上执行安装命令

yum -y install ceph ceph-radosgw

3.4、测试

ceph --version

3.5、初始化mon(admin节点操作)

ceph-deploy mon create-initial

3.6、赋予各个节点使用命令免用户名权限

ceph-deploy admin node1 node2 node3

3.7、安装ceph-mgr

ceph-deploy mgr create node1

3.7、添加osd

ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3

3.8、查看集群状态

ssh node1 ceph -s

dsahboard配置

1、创建管理域秘钥

[root@node1 ~]# ceph auth get-or-create mgr.node1 mon 'allow profile mgr' osd 'allow *' mds 'allow *'
[mgr.node1]
    key = AQBSDzJf6HBQCRAAxFTtzlArI91hyQ0DnbBRFg==

2、开启ceph-mgr管理域

[root@node1 ~]# ceph-mgr -i node1

3、打开dashboard模块

[root@node1 ~]# ceph mgr module enable dashboard

4、绑定开启dashboard模块

[root@node1 ~]# ceph config-key set mgr/dashboard/node1/server_addr 192.168.43.20

浏览器访问node1的ip地址:7000访问web界面

客户端使用

1、配置存储池

[root@node1 ~]# ceph osd pool create rbd 128 128
pool 'rbd' created

2、初始化存储池

[root@node1 ~]# rbd pool init rbd

3、为client安装ceph

yum -y install python-setuptools

3.1、安装epel-release源

yum -y install epel-release

3.2、安装ceph源

vi /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=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

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

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

3.3、安装服务

yum -y install ceph ceph-radosgw

3.4、升级内核
升级ceph-client内核
Centos7升级内核
更新前,内核版本为:

[root@ceph-client ~]# uname -r
3.10.0-327.el7.x86_64
升级方法:导入key:
[root@ceph-client ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo的yum源

[root@ceph-client ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

查看可用的系统内核包

[root@ceph-client ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装内核:当前内核为最新5.7,也可以按照4版本的内核

[root@ceph-client ~]# yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

查看内核默认启动顺序

[root@ceph-client ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg 
CentOS Linux (5.7.12-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-1bbd5b6219324d96adde7c2631097c22) 7 (Core)

默认启动的顺序是从0开始,新内核是从头插入(目前位置在0,而5.7.12是在1),所以需要选择0

[root@ceph-client ~]# grub2-set-default 0

然后reboot重启,使用新的内核,下面是重启后使用的内核版本:

[root@ceph-client ~]# reboot
[root@ceph-client ~]# uname -r
5.7.12-1.el7.elrepo.x86_64

4、在admin节点赋予client使用命令免用户权限

[root@admin my-cluster]# ceph-deploy admin ceph-client

5、修改client下该文件的读权限

[root@ceph-client ~]# chmod +r /etc/ceph/ceph.client.admin.keyring

6、修改client的ceph配置文件 #这一步是为了解决映射镜像时出现错误
[root@ceph-client ~]# vi /etc/ceph/ceph.conf

rbd_default_features = 1

7、client节点创建块设备镜像:单位是M

[root@ceph-client ~]# rbd create foo --size 4096

8、client节点映射镜像到主机

[root@ceph-client ~]# rbd map foo --name client.admin

8、client节点格式化块设备

[root@ceph-client ~]# mkfs.ext4 -m 0 /dev/rbd/rbd/foo

9、client节点mount块设备

[root@ceph-client ~]# mount /dev/rbd/rbd/foo /mnt
上一篇 下一篇

猜你喜欢

热点阅读