记录:335
场景:在CentOS 7.9操作系统上,部署ceph-13.2.10集群。应用ceph对象存储(ceph object store);主要是创建对象存储客户端、使用s3cmd操作对象存储。
版本:
操作系统:CentOS 7.9
ceph版本:ceph-13.2.10
名词:
Ceph:一个开源的分布式存储系统。
Ceph: Ceph is a distributed object store and file system designed to provide excellent performance, reliability and scalability.
Amazon S3,Amazon Simple Storage Service的简称,是一种对象存储服务,使用唯一性键值来存储任意数量的对象。
S3cmd,是一个免费的命令行工具和客户端,用于在Amazon S3和其他使用S3协议的云存储服务提供商中上传、下载、检索和管理数据。比如,Ceph支持S3协议。
bucket,在Ceph的对象存储模式中,bucket存放格式是:s3://BUCKET,相当于根目录下的一级目录;对象在bucket中存放格式:s3://BUCKET/OBJECT。
bucket,直译:桶。
地址:
官网:https://docs.ceph.com/
安装包地址:https://mirrors.aliyun.com/ceph/rpm-mimic/
1.基础环境
1.1 Ceph集群(服务端)
集群已安装软件:ceph-deploy、ceph、ceph-radosgw。
集群已部署组件:mon、mgr、mds、osd、rgw。
查看集群状态:ceph -s
1.2 Ceph客户端
在集群之外的主机app166中部署客户端。操作ceph集群的存储系统。
安装命令:yum install -y ceph-common
解析:在客户端主机安装ceph-common,操作集群。
1.3主机软件规划
ceph集群和ceph客户端的主机、IP以及组件分布规划。
1.4安装ceph
离线安装ceph集群,可以参考如下博文。
博文:离线安装ceph集群(ceph-13.2.10)
地址:https://blog.csdn.net/zhangbeizhen18/article/details/128052772
2.开启客户端认证
在主节点app161操作,操作目录:cd /etc/ceph。
(1)确认ceph.conf文件
文件:/etc/ceph/ceph.conf
内容:auth_client_required = cephx
(2)确认客户端秘钥
秘钥文件名称:/etc/ceph/ceph.client.admin.keyring
秘钥内容:
[client.admin]
key = AQDtioBjVwefMBAAu0/oJPK2khWK+juNOQkyZw==
caps mds = "allow *"
caps mgr = "allow *"
caps mon = "allow *"
caps osd = "allow *"
3.同步主节点配置文件到客户端
在主节点app161操作,操作目录:cd /etc/ceph。
(1)执行同步配置文件操作
命令:ceph-deploy admin 192.168.19.166
解析:ceph-deploy admin,执行同步配置命令;192.168.19.166,是客户端主机ip,如果没有配置免密,那么就需要输入密码确认。
(2)同步的文件列表
从主节点app161同步到客户端节点的配置文件:
ceph.client.admin.keyring、ceph.con、tmpW4qEGF。
4.客户端生成操作对象存储秘钥
在客户端app166操作,操作目录:cd /etc/ceph。
(1)创建秘钥
命令:radosgw-admin user create --uid="hangzhou" --display-name="hangzhou"
解析:radosgw-admin是安装ceph-common已安装;hangzhou,是指定的名称。
(2)生成秘钥信息
生成key信息:
...
"user": "hangzhou",
"access_key": "IH7D60Y1FCF3RZR9NG36",
"secret_key": "vAG2dK6kyhJTRPbH5Nogw0Uqja2UR8egPeRoxDNb"
...
5.安装s3cmd客户端
在客户端app166操作,操作目录:cd /etc/ceph。
(1)安装s3cmd
安装s3cmd命令:yum install -y s3cmd
安装辅助包:yum install -y python-pip
解析:s3cmd是操作对象存储的客户端。
6.配置s3cmd客户端
修改文件:vi /root/.s3cfg
修改内容:
[default]
access_key=IH7D60Y1FCF3RZR9NG36
secret_key=vAG2dK6kyhJTRPbH5Nogw0Uqja2UR8egPeRoxDNb
host_base=192.168.19.161:7480
host_bucket=192.168.19.161:7480/%(bucket)
cloudfront_host=192.168.19.161:7480
use_https=False
7.应用s3cmd操作对象存储
(1)ps帮助命令
命令:s3cmd --help
功能:查看s3cmd支持全部命令和选项,在实际工作中,查看这个手册应该是必备之选。
(2)配置s3cmd
命令:s3cmd --configure
功能:一个交互式配置工具。
(3)创建bucket
命令:s3cmd mb s3://hangzhou
功能:创建一个bucket,名称:hangzhou。bucket名称唯一,不能重复。
(4)删除空bucket
命令:s3cmd rb s3://hangzhou
功能:只能删除空桶,如果桶有内容需先删内容,再删除桶。
(5)查看bucket
命令:s3cmd ls
功能:查看桶列表。
命令:s3cmd ls s3://hangzhou/
功能:查看指定桶下的对象。
(6)查看bucket包括内容
命令:s3cmd la
功能:查看s3://下的桶列表,包括桶里面的对象。
(7)上传文件到bucket
命令:s3cmd put /home/jdk-8u281-linux-x64.tar.gz s3://hangzhou
功能:上传文件到ceph的桶中存储。
(8)从bucket下文件
命令:s3cmd get s3://hangzhou/jdk-8u281-linux-x64.tar.gz
功能:从ceph的桶中下载文件到本地。
(9)删除bucket中的文件
命令:s3cmd del s3://hangzhou/jdk-8u281-linux-x64.tar.gz
命令:s3cmd rm s3://hangzhou/jdk-8u281-linux-x64.tar.gz
功能:删除桶中文件。
(10)查看bucket已使用空间
命令:s3cmd du -H s3://hangzhou
功能:查看桶中对象,占用空间大小。
(11)获取bucket的信息
命令:s3cmd info s3://hangzhou
功能:查看桶信息。
命令:s3cmd info s3://hangzhou/jdk-8u281-linux-x64.tar.gz
功能:查看桶中对象信息。
(12)复制bucket中文件
命令:s3cmd cp s3://hangzhou/jdk-8u281-linux-x64.tar.gz s3://hangzhou_new
功能:把文件从一个桶复制到另一个桶。
(13)移动bucket中文件
命令:s3cmd mv s3://hangzhou/jdk-8u281-linux-x64.tar.gz s3://hangzhou_new
功能:把文件从一个桶移动到另一个桶。
(14)本地目录下文件同步bucket
命令:s3cmd sync /home/apps/software/ s3://hangzhou
功能:指定目录下文件,同步到ceph的桶中。
(15)对比指定目录下文件和bucket中文件差异
命令:s3cmd sync --dry-run /home/apps/software/ s3://hangzhou
功能:比对本地目录下文件和bucket文件差异。
(16)对比指定目录下文件和bucket中文件并删除桶中差异文件
命令:s3cmd sync --delete-removed /home/apps/software/ s3://hangzhou_new
功能:对比指定目录下文件和bucket中文件,删除指定目录没有但是在桶中有的文件;上传指定目录有的文件但是桶中没有的文件。
以上,感谢。
2022年11月26日