1.4 Ceph快速安装
在Ceph官网上提供了两种安装方式:快速安装和手动安装。快速安装采用Ceph-Deploy工具来部署;手动安装采用官方教程一步一步来安装部署Ceph集群,过于烦琐但有助于加深印象,如同手动部署OpenStack一样。但是,建议新手和初学者采用第一种方式快速部署并且测试,下面会介绍如何使用Ceph-Deploy工具来快速部署Ceph集群。
1.4.1 Ubuntu/Debian安装
本节将介绍如何使用Ceph-Deploy工具来快速部署Ceph集群,开始之前先普及一下Ceph-Deploy工具的知识。Ceph-Deploy工具通过SSH方式连接到各节点服务器上,通过执行一系列脚本来完成Ceph集群部署。Ceph-Deploy简单易用同时也是Ceph官网推荐的默认安装工具。本节先来讲下在Ubuntu/Debian系统下如何快速安装Ceph集群。
1)配置Ceph APT源。
root@localhos`t:~# echo deb http://ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
2)添加APT源key。
root@localhost:~# wget –q –O -'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
3)更新源并且安装ceph-deploy。
root@localhost:~# sudo apt-get update &&sudo apt-get install ceph-deploy -y
4)配置各个节点hosts文件。
root@localhost:~# cat /etc/hosts
192.168.1.2 node1
192.168.1.3 node2
192.168.1.4 node3
5)配置各节点SSH无密码登录,这就是本节开始时讲到的Ceph-Deploy工具要用过SSH方式连接到各节点服务器,来安装部署集群。输完ssh-keygen命令之后,在命令行会输出以下内容。
root@localhost:~# ssh-keygen
Generating public/private key pair.
Enter file in which to save the key (/ceph-client/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-client/.ssh/id_rsa.
Your public key has been saved in /ceph-client/.ssh/id_rsa.pub
6)复制key到各节点。
root@localhost:~# ssh-copy-idnode1
root@localhost:~# ssh-copy-idnode2
root@localhost:~# ssh-copy-idnode3
7)在执行ceph-deploy的过程中会生成一些配置文件,建议创建一个目录,例如my-cluster。
root@localhost:~# mkdir my-cluster
root@localhost:~# cd my-cluster
8)创建集群(Cluster),部署新的monitor节点。
root@localhost:~# ceph-deploy new {initial-monitor-node(s)}
例如:
root@localhost:~# ceph-deploy new node1
9)配置Ceph.conf配置文件,示例文件是默认的,可以根据自己情况进行相应调整和添加。具体优化情况本书后面会介绍。
[global]
fsid = 67d997c9-dc13-4edf-a35f-76fd693aa118
mon_initial_members = node1,node2
mon_host = 192.168.1.2,192.168.1.3
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
<!-----以上部分都是ceph-deploy默认生成的---->
public network = {ip-address}/{netmask}
cluster network={ip-addesss}/{netmask}
<!-----以上两个网络是新增部分,默认只是添加public network,一般生产都是定义两个网络,集群网络和数据网络分开-------->
[osd]
……
[mon]
……
这里配置文件不再过多叙述。
10)安装Ceph到各节点。
root@localhost:~# ceph-deploy install {ceph-node}[{ceph-node} ...]
例如:
root@localhost:~# ceph-deploy install node1 node2 node3
11)获取密钥key,会在my-cluster目录下生成几个key。
root@localhost:~# ceph-deploy mon create-initial
12)初始化磁盘。
root@localhost:~# ceph-deploy disk zap {osd-server-name}:{disk-name}
例如:
root@localhost:~# ceph-deploy disk zap node1:sdb
13)准备OSD。
root@localhost:~# ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
例如:
root@localhost:~# ceph-deploy osd prepare node1:sdb1:sdc
14)激活OSD。
root@localhost:~# ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
例如:
root@localhost:~# ceph-deploy osd activate node1:sdb1:sdc
15)分发key。
root@localhost:~# ceph-deploy admin {admin-node} {ceph-node}
例如:
root@localhost:~# ceph-deploy admin node1 node2 node3
16)给admin key赋权限。
root@localhost:~# sudo chmod +r /etc/ceph/ceph.client.admin.keyring
17)查看集群健康状态,如果是active+clean状态就是正常的。
root@localhost:~# ceph health
安装Ceph前提条件如下。
① 时间要求很高,建议在部署Ceph集群的时候提前配置好NTP服务器。
② 对网络要求一般,因为Ceph源在外国有时候会被屏蔽,解决办法多尝试机器或者代理。
1.4.2 RHEL/CentOS安装
本节主要讲一下在RHEL/CentOS系统下如何快速安装Ceph集群。
1)配置Ceph YUM源。
root@localhost:~# vim /etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Cephnoarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
2)更新源并且安装ceph-deploy。
root@localhost:~# yum update &&yum install ceph-deploy -y
3)配置各个节点hosts文件。
root@localhost:~# cat /etc/hosts
192.168.1.2 node1
192.168.1.3 node2
192.168.1.4 node3
4)配置各节点SSH无密码登录,通过SSH方式连接到各节点服务器,以安装部署集群。输入ssh-keygen命令,在命令行会输出以下内容。
root@localhost:~# ssh-keygen
Generating public/private key pair.
Enter file in which to save the key (/ceph-client/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /ceph-client/.ssh/id_rsa.
Your public key has been saved in /ceph-client/.ssh/id_rsa.pub
5)拷贝key到各节点。
root@localhost:~# ssh-copy-id node1
root@localhost:~# ssh-copy-id node2
root@localhost:~# ssh-copy-id node3
6)在执行ceph-deploy的过程中会生成一些配置文件,建议创建一个目录,例如my-cluster。
root@localhost:~# mkdir my-cluster
root@localhost:~# cd my-cluster
7)创建集群(Cluster),部署新的monitor节点。
root@localhost:~# ceph-deploy new {initial-monitor-node(s)}
例如:
root@localhost:~# ceph-deploy new node1
8)配置Ceph.conf配置文件,示例文件是默认的,可以根据自己情况进行相应调整和添加。具体优化情况本书后面会介绍。
[global]
fsid = 67d997c9-dc13-4edf-a35f-76fd693aa118
mon_initial_members = node1,node2
mon_host = 192.168.1.2,192.168.1.3
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
<!-----以上部分都是ceph-deploy默认生成的---->
public network = {ip-address}/{netmask}
cluster network={ip-addesss}/{netmask}
<!-----以上两个网络是新增部分,默认只是添加public network,一般生产都是定义两个网络,集群网络和数据网络分开-------->
[osd]
……
[mon]
……
这里配置文件不再过多叙述。
9)安装Ceph到各节点。
root@localhost:~# ceph-deploy install {ceph-node}[{ceph-node} ...]
例如:
root@localhost:~# ceph-deploy install node1 node2 node3
10)获取密钥key,会在my-cluster目录下生成几个key。
root@localhost:~# ceph-deploy mon create-initial
11)初始化磁盘。
root@localhost:~# ceph-deploy disk zap {osd-server-name}:{disk-name}
例如:
root@localhost:~# ceph-deploy disk zap node1:sdb
12)准备OSD。
root@localhost:~# ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
例如:
root@localhost:~# ceph-deploy osd prepare node1:sdb1:sdc
13)激活OSD。
root@localhost:~# ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
例如:
root@localhost:~# ceph-deploy osd activate node1:sdb1:sdc
14)分发key。
root@localhost:~# ceph-deploy admin {admin-node} {ceph-node}
例如:
root@localhost:~# ceph-deploy admin node1 node2 node3
15)给admin key赋权限。
root@localhost:~# sudo chmod +r /etc/ceph/ceph.client.admin.keyring
16)查看集群健康状态,如果是 active + clean 状态就是正常的。
root@localhost:~# ceph health