ceph基于docker的对象存储实验(ubuntu)

本文详细指导如何通过Docker部署Ceph的RGW组件,包括集群状态检查、用户添加、客户端S3cmd配置,以及实际操作如创建bucket、上传下载文件等,适合进行对象存储学习和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 检查集群状态

docker exec ceph-mon ceph -s

如果显示HEALTH_OK并且搭建好rgw,就可以开始下面的实验啦~

2.添加rgw用户

#用户uid为testuser
docker exec rgw radosgw-admin user create --uid="testuser" --display-name="Jsj User"

这里的公钥和私钥要和接下来的配置对应上

3.客户端测试(这里可以新建一台虚拟机,也可以直接在集群里面做实验)

(1)安装s3cmd

sudo apt install s3cmd
#如果使用centos命令改为
#yum -y install s3cmd

(2)配置s3cmd

查看用户的公钥和私钥

sudo docker exec ceph-rgw radosgw-admin user info --uid=testuser

配置

s3cmd --configure

其余直接回车

(3)创建bucket(相当于用户在集群中创建一个文件夹,用来存储或备份文件、图片或视频等)

s3cmd mb s3://my-bucket-name

 (4)上传文件

cd 到文件所在目录或新建一个文件并上传(这里新建了一个file.txt文件)

touch file.txt
s3cmd put file.txt s3://my-bucket-name/file.txt

(5)查看bucket中的文件

s3cmd ls s3://my-bucket-name

(6)下载文件

这里需要进入到其他不存在与bucket中需要下载的文件名相同的文件,否则会报错显示文件已存在

s3cmd get s3://my-bucket-name/*

 (7)删除文件

s3cmd del s3://my-bucket-name/file.txt

### 如何在Linux上使用Docker部署Ceph 为了在Linux环境中通过Docker部署Ceph,可以遵循一系列特定的操作流程。这些操作不仅适用于裸机服务器也适合虚拟环境。 #### 准备工作 确保目标机器已安装最新版本的Docker引擎并配置好必要的网络设置以便容器间通信正常[^2]。对于操作系统的选择,推荐基于稳定性和社区支持考虑CentOS 7.2 或 Ubuntu 16.04作为宿主机平台。 #### 获取官方镜像 从Docker Hub拉取最新的Ceph镜像: ```bash docker pull ceph/daemon-base:latest-master-devel ``` 此命令会下载由Ceph团队维护的基础镜像用于后续构建服务节点。 #### 初始化Monitor节点 创建一个名为`mon-node`的新容器实例来运行监视器角色: ```bash docker run -d --net=host --name mon-node \ -v /etc/ceph:/etc/ceph \ -v /var/lib/ceph/:/var/lib/ceph/ \ -e MON_IP=<MONITOR_NODE_IP> \ -e CEPH_PUBLIC_NETWORK=<NETWORK_SUBNET> \ ceph/daemon-base mon ``` 这里需要替换 `<MONITOR_NODE_IP>` 和 `<NETWORK_SUBNET>` 参数以匹配实际物理地址和子网范围。 #### 添加Manager守护进程 同样地,在相同或另一台设备上启动管理器组件: ```bash docker run -d --net=host --name mgr-node \ -v /etc/ceph:/etc/ceph \ -v /var/lib/ceph/:/var/lib/ceph/ \ ceph/daemon-base mgr ``` 这一步骤增加了集群监控与运维功能的支持。 #### 配置存储池及OSDs 最后,准备至少三个独立磁盘供对象存储设备(OSDs)使用,并执行如下脚本初始化它们: ```bash for i in {a..c}; do docker run -d --net=host --name osd-$i \ -v /dev/sd$i:/dev/sdb \ -e OSD_DEVICE=/dev/sdb \ -e CLUSTER_NETWORK=${CEPH_PRIVATE_NET} \ ceph/daemon-base osd_ceph_disk done ``` 上述过程假设存在 `/dev/sda`, `/dev/sdb`, `/dev/sdc` 这样的未分区硬盘资源可供分配给各个OSD成员;同时需指定内部通讯使用的私有IP区间 `${CEPH_PRIVATE_NET}`。 完成以上步骤之后便拥有了一个基础版分布式文件系统的雏形。随着更多硬件加入以及高级特性的启用,能够逐步扩展成生产级别的解决方案[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值