实验目的:
- 掌握ceph的配置和使用方法
- 掌握分布式存储系统架构规划和设计方法
- 理解块存储,文件存储,对象存储的实现方法
实验步骤:
1.规划设计
准备四台虚拟机(有条件部署三台服务器,一台计算机更好),分别安装centos-7-x86_64操作系统,使用的ceph的版本minic版,网络地址及规划随机。
节点名称 | IP地址 | 系统版本 | 部署进程 | 数据盘 |
Ceph1 | 192.168.69.150 | Centos-7-x86_64 | MON+mgr+OSD | /dev/sdb |
Ceph2 | 192.168.69.151 | Centos-7-x86_64 | MON+mgr+OSD | /dev/sdb |
Ceph3 | 192.168.69.152 | Centos-7-x86_64 | MON+mgr+OSD | /dev/sdb |
Clieng | 192.168.69.153 | Centos-7-x86_64 | 客户端 |
表中各部分配置说明如下:
在准备好的三个节点和客户端 client上分别进行下述操作
#service firewalld stop #chkconfig firewalld off #sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #setenforce 0
以ceph1节点为例 #vi /etc/sysconfig/network-scripts/ifcfg-ens33
#systemctl restart network
#mv /etc/yum.repos.d/Cen* /opt/ #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.repo
#vi /etc/hosts 添加如下内容: 192.168.69.150 ceph-1 192.168.69.151 ceph-2 192.168.69.151 ceph-3 192.168.69.153 client # 确保每台服务器hosts文件内容一致
Chrony 是一个开源的自由软件,能使系统时钟与时钟服务器(NTP)保持同步,在分布式集群中,为了便于同一生命周期内不同节点服务的管理,需要各个节点的时钟服务器严格同步。在以下配置中,以client节点作为时钟服务器,其他节点以client节点的时钟作为时钟标准调整自己的时钟。 client节点和三个集群节点分别安装Chrony服务。 # yum -y install chrony 在client节点,编辑chrony.conf配置文件。 #vi /etc/chrony.conf 找到server字段,在所有默认的server前加“#”,并添加国内时钟服务器,配置允许参同步的网段。 server 0. centos. pool. ntp. org iburst server 1. centos. pool. ntp. org iburst server 2. centos. pool. ntp. org iburst server 3. centos. pool. ntp. org iburst server ntp1.allyun.com server 210.72.145.44 server 202.112.10.36 allow 192.168.69.0/24 local stratum 10 server 192.168.69.153
在其他三个节点编译chrony.conf配置文件,在所有默认的server前加”#”并添加本地时钟服务器(以ceph1节点为例) #vi /etc/chrony.conf #server 0. centos. pool. ntp. org iburst #server 1. centos. pool. ntp. org iburst #server 2. centos. pool. ntp. org iburst #server 3. centos. pool. ntp. org iburst server 192.168.69.153 在所有节点启动chrony服务,并设置开机自启动。 # systemetl restart chronyd # systemctl enable chronyd 查看同步情况。 # chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample A* client 10 6 377 27 -66us[ -167us] +/- 167us
如果同步时间显示的还是数千秒,则可以 systemctl restart chronyd,然后再次查看同步情况。
在三个节点分别配置ceph.repo文件。
[ceph] name=Ceph packages for $basearch baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch enabled=1 priority=2 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 priority=2 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=0 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc安装python支持组件。 为防止后续python支持环境出现问题,可以在三个节点上分别运行。 i yum install-y python-pip
3.部署ceph集群 (1)安装部署软件。 ceph-deploy是个部署工具,使用它可以实现所有节点同步安装,如果这个工具无法使用,必须在每个节点上分别进行安装过程。 在节点ceph1安装。 # yum -y install ceph-deploy
(2)创建工作目录。 后续进行创建集群、安装软件包、初始化服务、创建OSD等操作时,必须创建工作目录。 # mkdir ceph-cluster && cd ceph-cluster (3)创建群集并安装软件。 # ceph-deploy new ceph{1,2,3} #ceph-deploy install cephl ceph2 ceph3
#ceph-deploy mon create ceph{1,2,3} # ceph-deploy mon create-initial #ceph mon_status 检查部署情况 (5)共享管理密钥。 用 ceph-deploy 把配置文件和 admin 密钥复制到管理节点和 Ceph 节点,这样每次执行Ceph 命令行时就无须指定 monitor 地址和 ceph.client.admin.keyring。 # ceph-deploy admin cephl ceph2 ceph3 修改密钥权限。 #sudo chmod 644 /etc/ceph/ceph.client.admin.keyring (6)创建OSD。 #ceph-deploy osd create ceph1 --data /dev/sdb #ceph-deploy osd create ceph2 --data /dev/sdb #ceph-deploy osd create ceph3 --data /dev/sdb 创建完成可以查看OSD。 #ceph-deploy osd list cephl ceph2 ceph3 (7)创建mgr。 #ceph-deploy mgr create cephl ceph2 ceph3 (8)验证测试。 # ceph health 正常情况将显示“HEALTH_OK”。 #ceph -s 显示详细信息。如果该简化命令提示错误,则使用ceph-status。 cluster: id: 746cd5aa-feb3-4676-9203-783792f72da3 health: HEALTH_OK services: mon: 1 daemons, quorum ceph-1 mgr: ceph-1(active) osd: 3 osds: 3 up, 3 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0B usage: 3.01GiB used, 12.0GiB / 15.0GiB avail pgs: (9)时钟同步问题。 如果ceph-s显示如下信息。 #ceph -s health HEALTH WARN clock skew detected on mon. node2, mon. node 3 Monitor clock skew detected 往往是各节点时钟同步出错。修改ceph1节点的配置文件/etc/ceph/ceph.conf,添加如下内容,将同步时间由默认的0.05s改为1s(或2s)。 [mon] mon clock drift allowed =1 mon clock drift warn backoff = 30 4.开启 Dashboard Ceph从 Luminous开始,提供了原生的 Dashboard功能,通过Dashboard可以获取Ceph集群的各种状态信息,从Mimic里实现了Dashboard V2版本,提供了更全面的Ceph展示和管理功能。 (1)查看ceph状态。 首先查看ceph状态,找出active的mgr,这里active mgr是cephl。 # ceph -s mgr: cephl (active), standbys: ceph2, ceph 3 (2)生成自签名证书和秘钥。 # ceph dashboard create-self-signed-cert self-signed certificate created 生成key pair,并配置给ceph mgr。 # mkdir mgr-dashboard # cd mgr-dashboard/ # openssl req -new -nodes -x509 -subj”/o=IT/CN=ceph-mgr-dashboard” -days 3650 -keyout dashboard.key -out dashboard.crt-extensions v3_ca Generating a 2048 bit RSA private key ........+++ .................+++ writing new private key to 'dashboard. key' ----- # 1s dashboard. crt dashboard. key (3)启用 dashboard 插件。 # ceph mgr module enable dashboard (4)配置 dashboard 地址和端口。 # ceph config set mgr mgr/dashboard/server_addr 192.168.69.150 set mgr/dashboard/server_addr #ceph config set mgr mgr/dashboard/server_port 8888set mgr/dashboard/server_port 查看 dashboard服务。 # ceph mgr services "dashboard":"https://192.168.69.150:8888/" (5)配置 dashboard 认证密码。 # ceph dashboard set-login-credentials admin 123Username and password updated 访问ceph的dashboard。Dashboard面板显示当前ceph集群状态信息
在cluster选项卡可以查看集群中的host,osds等信息,此外后续配置了块存储,文件系统,对象存储,可以在block,objectgateway界面查看。
|