ceph集群搭建
一、服务器规划
主机名 | 主机IP | 磁盘配比 | 角色 |
node1 |
public-ip:10.0.0.130 |
sda,sdb,sdc sda是系统盘,另外两块数据盘 |
ceph-deploy,monitor,mgr,osd |
node2 |
public-ip:10.0.0.131 |
sda,sdb,sdc sda是系统盘,另外两块数据盘 |
monitor,mgr,osd |
node3 |
public-ip:10.0.0.132 |
sda,sdb,sdc sda是系统盘,另外两块数据盘 |
monitor,mgr,osd |
二、设置主机名
主机名设置,三台主机分别执行属于自己的命令
node1
node2
node3
执行完毕后要想看到效果,需要关闭当前命令行窗口,重新打开即可看到设置效果
三、设置hosts文件
在3台机器上都执行下面命令,添加映射
四、创建用户并设置免密登录
创建用户(三台机器上都运行)
设置免密登录 (只在node1上执行)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[root@node1 ~]# su - admin [admin@node1 ~]$ ssh-keygen Generating public / private rsa key pair. Enter file in which to save the key (/home/admin/.ssh/id_rsa): Created directory '/home/admin/.ssh' . Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/admin/.ssh/id_rsa. Your public key has been saved in /home/admin/.ssh/id_rsa.pub. The key fingerprint is : SHA256:qfWhuboKeoHQOOMLOIB5tjK1RPjgw/Csl4r6A1FiJYA admin@admin.ops5.bbdops.com The key's randomart image is : +---[RSA 2048]----+ |+o.. | |E.+ | |*% | |X+X . | |=@.+ S . | |X.* o + . | |oBo. . o . | |ooo. . | |+o....oo. | +----[SHA256]-----+ [admin@node1 ~]$ ssh-copy-id admin@node1 [admin@node1 ~]$ ssh-copy-id admin@node2 [admin@node1 ~]$ ssh-copy-id admin@node3 |
五、配置时间同步
三台都执行
5.1 关闭防火墙
六、安装ceph-deploy并安装ceph软件包
配置ceph清华源
安装ceph-deploy
初始化mon点
ceph需要epel源的包,所以安装的节点都需要yum install epel-release
修改ceph.conf,添加如下配置
安装Ceph软件到指定节点
--no-adjust-repos是直接使用本地源,不生成官方源。
部署初始的monitors,并获得keys
做完这一步,在当前目录下就会看到有如下的keyrings:
将配置文件和密钥复制到集群各节点
配置文件就是生成的ceph.conf,而密钥是ceph.client.admin.keyring,当使用ceph客户端连接至ceph集群时需要使用的密默认密钥,这里我们所有节点都要复制,命令如下。
七、部署ceph-mgr
八、创建osd
在node1上执行以下命令
如果报错,记得用root执行
检查osd状态
默认情况下ceph.client.admin.keyring文件的权限为600,属主和属组为root,如果在集群内节点使用cephadmin用户直接直接ceph命令,将会提示无法找到/etc/ceph/ceph.client.admin.keyring文件,因为权限不足。
如果使用sudo ceph不存在此问题,为方便直接使用ceph命令,可将权限设置为644。在集群节点上面node1 admin用户下执行下面命令。
查看osds
九、开启MGR监控模块
方式一:命令操作
如果以上操作报错如下:
则因为没有安装ceph-mgr-dashboard
,在mgr的节点上安装。
方式二:配置文件
web登录配置
默认情况下,仪表板的所有HTTP连接均使用SSL/TLS进行保护。
以上配置完成后,浏览器输入https://node1:8443
输入用户名admin
,密码admin
登录即可查看
参考链接:
https://www.sysit.cn/blog/post/sysit/Ceph%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE%E6%89%8B%E5%86%8C
https://boke.wsfnk.com/archives/1163.html
https://www.linux-note.cn/?p=85
ceph集群搭建成功后进行格式化挂载使用参考地址
http://www.soolco.com/post/89854_1_1.html
ceph集群搭建完成,使用存储进行如下操作:
3.2 添加元数据服务(MDS)
要使用 Ceph 的文件存储--CephFS,需要至少需要创建一个元数据服务(METADATA SERVER)
METADATA SERVER (mds)会按序监听68xx可用端口
3.3 添加对象网关组件(RGW)
RGW 是 Ceph 的 S3/Swift 网关组件。要使用 Ceph 的对象存储,必须安装 RGW
RGW 默认监听 7480 端口
检查,如果启动成功,访问此端口会有如下回显
可选:如要修改端口,可以修改配置文件ceph.conf
,如改为80端口
需要重启
4. 客户端安装
想用使用 Ceph ,那么服务器节点需要安装 Ceph 客户端 (确保已经创建部署用户,如我上面创建的: myceph)
5. 块存储操作
5.1 创建 pool
管理节点上操作
如有需要,参阅附1官方链接
创建池 创建一个名为rbd
的池,且pg_num
为 8
5.1.1 pool的常用操作
附上一些pool的常用操作 查看所有池
删除池 需要修改配置文件ceph.conf
,将 mon_allow_pool_delete 设置为 true。
5.2 初始化 pool
管理节点上操作
5.3 创建块设备镜像
客户端操作 创建大小为4G的设备镜像
列出块设备镜像
5.4 设备镜像映射块设备
客户端操作
执行成功,会回显块设备的目录地址,如下
5.5 挂载
客户端操作
查看结果
5.6 扩容/缩容
客户端操作 扩容/缩容的本质就是调整设备镜像大小
然后使用扩展工具刷新生效
查看结果 (这里我只进行了扩容,xfs只能扩容,ext4等可以扩缩)
6. 文件存储操作
Ceph文件系统(CephFS)是一个符合POSIX标准的文件系统,它使用Ceph存储集群来存储其数据。Ceph文件系统使用与Ceph块设备相同的Ceph存储集群系统,带有S3和Swift API的Ceph对象存储或本机绑定(librados)。
6.1 创建 pool
管理节点操作 和块存储类似,也需要创建池,但是不同的是,文件存储创建的池是默认池,而且还是两个,分别是cephfs_data
和cephfs_metadata
6.2 创建文件系统 (CephFS)
管理节点操作
6.3 创建认证文件
客户端操作 创建认证文件admin.secret
6.4 挂载 CephFS
查看结果
7. 对象存储操作
深入了解移步官方,目前这部分我也是云里雾里
7.1 创建用户
管理节点操作 创建 S3 用户
创建 Swift 子用户 (必须先创建S3用户才能创建Swift用户)
获取用户信息
回显用户信息,注意 swift 部分,如下
7.2 Python操作Swift
需要安装包python-swiftclient
代码如下
获取所有容器回显
获取指定容器中的所有对象列表回显