首页 > 其他分享 >ddsadasdasd

ddsadasdasd

时间:2024-09-25 13:35:34浏览次数:9  
标签:Ceph ceph admin03 user33 ddsadasdasd root pool

目录

 

理论部分 

Ceph的诞生主要是为了解决以下问题:

操作部分

第一部分(虚拟机配置)

一、修改主机名

二、修改防火墙、SELinux状态

三、修改hosts文件

四、验证网络环境(请参阅 第一步、第四步)

五、配置 ceph 源

六、开始执行yum安装

七、创建目录

第二部分(部署ceph)

1.1初始化ceph集群

1.2修改ceph.conf配置文件为单节点

 2.1初始化 Ceph 监视器(MON)节点

2.2 Ceph 配置文件和密钥分发到指定的管理节点

2.3在指定的节点上创建一个 Ceph 管理器(MGR)守护进程。

3.1磁盘部署

3.2 创建OSD

4.1启动rgw

 4.2测试rgw是否正常启动

 4.3设置pool 和 pgs的值

 4.4利用s3创建 桶来测试

 4.5查看用户信息

 5.5创建一个名为 rbd-demo 的专门用于 RBD 的存储池

5.6将存储池转换为 RBD 模式

5.7初始化存储池

5.8创建镜像

 5.9镜像管理

 6.1创建ceph文件系统(ceph fs)池

 6.2创建文件系统

 7.1创建dashboard

7.2禁用ssl加密

7.3配置IP和端口

第三部分(S3cmd的部署配置)

 1.S3cmd安装

 2.创建s3cmd使用的用户生成key

3.1 配置s3使其可以连接到ceph集群

3.2 修改刚生成的/root/.s3cfg中的三处配置

3.3 创建名为test-bucket的bucket

3.6 查看bucket桶列表


 

理论部分 

Ceph的诞生主要是为了解决以下问题:

  1. 统一存储的I/O问题:

    Ceph提供对象、块和文件存储,是一个统一存储解决方案,旨在解决不同类型数据存储的I/O问题。

    通过整合多种存储接口,Ceph能够满足不同应用对数据存储的需求。

  2. 高性能分布式文件系统的需求:

    Ceph最初是作为一个PhD研究项目开始的,目标是开发下一代高性能分布式文件系统。

    随着云计算的发展,Ceph成为了一个受关注的开源项目,并乘上了OpenStack的春风,得到了广泛的应用和推广。

  3. 数据容错和无缝复制:

    Ceph被设计成一个没有单点故障的完全分布式存储系统。

    通过数据复制和容错机制,确保数据的可靠性和稳定性。这种设计使得Ceph能够在硬件故障时自动进行数据修复和管理,提高了存储系统的可用性。

  4. 可扩展性和灵活性:

    Ceph支持PB级别的数据扩展,并且可以部署到上千台通用服务器上。

    这种可扩展性使得Ceph能够满足不断增长的数据存储需求。同时,Ceph的去中心化设计也提供了更大的灵活性,使得集群的扩展更加容易和高效。

Ceph的诞生主要是为了解决统一存储的I/O问题、高性能分布式文件系统的需求、数据容错和无缝复制以及可扩展性和灵活性等问题。

操作部分

第一部分(虚拟机配置

一、修改主机名
  1.   [root@localhost ~]# hostnamectl set-hostname user33
  2.   [root@localhost ~]# hostname
  3.    
  4.   [root@localhost ~]# bash
二、修改防火墙、SELinux状态
  1.   [root@user33 ~]# setenforce 0
  2.   [root@user33 ~]# sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
  3.    
  4.   [root@user33 ~]# systemctl disable firewalld.service
  5.   [root@user33 ~]# systemctl stop firewalld.service
三、修改hosts文件
[root@user33 ~]# echo "10.18.33.143 user33" | tee -a /etc/hosts
四、验证网络环境(请参阅 第一步、第四步)

https://blog.csdn.net/weixin_73460492/article/details/137519244?spm=1001.2014.3001.5501icon-default.png?t=N7T8http://DHCP集群-(双机热备、DHCP主从服务器)

五、配置 ceph 源
  1.   [root@user33 ~]# ls /etc/yum.repos.d/
  2.   [root@user33 ~]# mkdir /etc/yum.repos.d/bak
  3.   [root@user33 ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/bak/
  4.    
  5.   [root@user33 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  6.   [root@user33 ~]# curl -o /etc/yum.repos.d/epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo
  7.   [root@user33 ceph]# cat -n /etc/yum.repos.d/ceph.repo
  8.   1 [Ceph]
  9.   2 name=Ceph packages for $basearch
  10.   3 baseurl=http://download.ceph.com/rpm-mimic/el7/$basearch
  11.   4 enabled=1
  12.   5 gpgcheck=1
  13.   6 type=rpm-md
  14.   7 gpgkey=https://download.ceph.com/keys/release.asc
  15.   8 priority=1
  16.   9
  17.   10 [Ceph-noarch]
  18.   11 name=Ceph noarch packages
  19.   12 baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
  20.   13 enabled=1
  21.   14 gpgcheck=1
  22.   15 type=rpm-md
  23.   16 gpgkey=https://download.ceph.com/keys/release.asc
  24.   17 priority=1
  25.   18
  26.   19 [ceph-source]
  27.   20 name=Ceph source packages
  28.   21 baseurl=http://download.ceph.com/rpm-mimic/el7/SRPMS
  29.   22 enabled=1
  30.   23 gpgcheck=1
  31.   24 type=rpm-md
  32.   25 gpgkey=https://download.ceph.com/keys/release.asc
  33.   26 priority=1
六、开始执行yum安装
  1.   [root@user33 ~]# yum clean all && yum makecache && yum repolist
  2.   源标识 源名称 状态
  3.   Ceph/x86_64 Ceph packages for x86_64 524
  4.   Ceph-noarch Ceph noarch packages 16
  5.   base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
  6.   ceph-source Ceph source packages 0
  7.   epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,798
  8.   extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 526
  9.   updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 5,802
  10.   repolist: 30,738
  11.    
  12.   [root@user33 ceph]# yum -y install ceph-deploy ceph ceph-radosgw python-setuptools python2-subprocess32 pyhton-pip epel-release
七、创建目录
  1.   [root@user33 ~]# mkdir ./ceph
  2.   [root@user33 ~]# cd ceph/

第二部分(部署ceph)

1.1初始化ceph集群
[root@user33 ceph]# ceph-deploy new user33
1.2修改ceph.conf配置文件为单节点
  1.   [root@user33 ceph]# echo "osd pool default min_size = 1" | tee -a ceph.conf
  2.   [root@user33 ceph]# echo "osd pool default size = 1" | tee -a ceph.conf
  3.   [root@user33 ceph]# echo "public_network = 10.18.33.0/24" | tee -a ceph.conf
  • osd pool default min_size = 1这行配置追加到ceph.conf文件的末尾。这设置了OSD(对象存储设备)池的默认最小大小为1。这意味着,为了保持数据完整性,Ceph将尝试确保至少有一个OSD是可用的。

  • osd pool default size = 1这行配置追加到ceph.conf。这设置了OSD池的默认大小为1。这通常与复制策略和其他相关的设置一起工作,以确定数据应如何在OSD之间进行复制。

  • public_network = 10.18.33.0/24这行配置追加到ceph.conf。这指定了Ceph集群用于公共通信(例如,客户端与集群之间的通信)的网络。

 2.1初始化 Ceph 监视器(MON)节点
[root@user33 ceph]# ceph-deploy mon create-initial
2.2 Ceph 配置文件和密钥分发到指定的管理节点
[root@user33 ceph]# ceph-deploy admin user33
2.3在指定的节点上创建一个 Ceph 管理器(MGR)守护进程。
[root@user33 ceph]# ceph-deploy mgr create user33
3.1磁盘部署

部署数据盘可参阅文献(请参阅 第三步):

https://blog.csdn.net/weixin_73460492/article/details/137612920?spm=1001.2014.3001.5501icon-default.png?t=N7T8http://linux部署RAID10磁盘阵列

3.2 创建OSD
[root@user33 ~]# ceph-deploy osd create user33 --data /dev/sdb1
4.1启动rgw
[root@user33 ceph]# ceph-deploy rgw create user33
 4.2测试rgw是否正常启动
  1.   [root@user33 ceph]# ss -nltp | grep 7480
  2.   LISTEN 0 128 *:7480 *:* users:(("radosgw",pid=12013,fd=38))
  3.    
  4.   [root@user33 ceph]# curl 10.18.33.143:7480
  5.   <?xml version="1.0" encoding="UTF-8"?><ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>anonymous</ID><DisplayName></DisplayName></Owner><Buckets></Buckets></ListAllMyBucketsResult>
参数讲解
-n 用于不解析服务名称
-t 表示TCP套接字
-l 用于仅显示正在监听的套接字
-p 用于显示与每个套接字关联的进程信息
 4.3设置pool 和 pgs的值
  1.   [root@user33 ceph]# ceph osd pool set .rgw.root pg_num 40
  2.   set pool 1 pg_num to 40
  3.   [root@user33 ceph]# ceph osd pool set .rgw.root pgp_num 40
  4.   set pool 1 pgp_num to 40
  • .rgw.root 通常是Ceph对象存储网关(RADOS Gateway, RGW)使用的内部存储池。

  • pg_num: 设置存储池的Placement Group(PG)数量。

    Placement Groups是Ceph用于在OSDs(Object Storage Daemons)之间分散存储对象的逻辑容器。

    合理设置PG数量对于性能和数据分布非常重要。

    太少的PGs可能导致OSD之间负载不均衡,而太多的PGs则可能导致额外的管理开销。

  • pgp_num: 设置用于Placement Group的放置目的的PGP(Placement Group for Placement)数量。

    在大多数情况下,pg_num 和 pgp_num 应该设置为相同的值。

    PGP是用于计算数据应该放置到哪个OSD上的逻辑结构,通常与PGs一一对应。

 4.4利用s3创建 桶来测试
[root@user33 ceph]# radosgw-admin user create --uid="admin" --display-name="admin"
 4.5查看用户信息
  1.   # 记录access_key和secret_access_key的值
  2.   [root@user33 ceph]# radosgw-admin user info --uid="admin"
 5.5创建一个名为 rbd-demo 的专门用于 RBD 的存储池
  1.   [root@admin03 ceph]# ceph osd pool create rbd-demo 64 64
  2.   pool 'rbd-demo' created
5.6将存储池转换为 RBD 模式
  1.   [root@admin03 ceph]# ceph osd pool application enable rbd-demo rbd
  2.   enabled application 'rbd' on pool 'rbd-demo'
5.7初始化存储池
  1.   # -p 等同于 --pool
  2.   [root@admin03 ceph]# rbd pool init -p rbd-demo
5.8创建镜像
  1.   [root@admin03 ~]# ls
  2.   anaconda-ks.cfg ceph ceph-deploy-ceph.log cirros-0.3.4-x86_64-disk.img
  3.    
  4.   [root@admin03 ~]# rbd create -p rbd-demo --image cirros-0.3.4-x86_64-disk.img --size 1G
 5.9镜像管理
  1.   # 列出Ceph集群中所有的存储池(pools)
  2.   [root@admin03 ~]# ceph osd lspools
  3.   1 .rgw.root
  4.   2 default.rgw.control
  5.   3 default.rgw.meta
  6.   4 default.rgw.log
  7.   5 default.rgw.buckets.index
  8.   6 rbd-demo
  9.    
  10.   # 列出指定存储池(在这里是rbd-demo)中的所有RBD镜像
  11.   [root@admin03 ~]# rbd ls -l -p rbd-demo
  12.   NAME SIZE PARENT FMT PROT LOCK
  13.   cirros-0.3.4-x86_64-disk.img 1 GiB 2
  14.    
  15.   #列出指定存储池(在这里是rbd-demo)中的所有RBD镜像
  16.   [root@admin03 ~]# rbd info -p rbd-demo --image cirros-0.3.4-x86_64-disk.img
  17.   rbd image 'cirros-0.3.4-x86_64-disk.img':
  18.   size 1 GiB in 256 objects
  19.   order 22 (4 MiB objects)
  20.   id: d3816b8b4567
  21.   block_name_prefix: rbd_data.d3816b8b4567
  22.   format: 2
  23.   features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
  24.   op_features:
  25.   flags:
  26.   create_timestamp: Thu May 9 10:48:55 2024
 6.1创建ceph文件系统(ceph fs)池
  1.   # 创建了一个名为cephfs_data的存储池,并设置了其PG(Placement Group)的数量为64
  2.   [root@admin03 ~]# ceph osd pool create cephfs_data 64
  3.   pool 'cephfs_data' created
  4.    
  5.   # 创建了一个名为cephfs_metadata的存储池,并设置了其PG的数量为32
  6.   [root@admin03 ~]# ceph osd pool create cephfs_metadata 32
  7.   pool 'cephfs_metadata' created
 6.2创建文件系统
  1.   [root@admin03 ~]# ceph fs new cephfs cephfs_metadata cephfs_data
  2.   new fs with metadata pool 8 and data pool 7
  3.    
  4.   # 查看文件系统
  5.   [root@admin03 ~]# ceph fs ls
  6.   name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
  7.    
  8.   # 查看文件系统状态
  9.   [root@admin03 ~]# ceph fs status cephfs
  10.   cephfs - 0 clients
  11.   ======
  12.   +------+-------+-----+----------+-----+------+
  13.   | Rank | State | MDS | Activity | dns | inos |
  14.   +------+-------+-----+----------+-----+------+
  15.   +------+-------+-----+----------+-----+------+
  16.   +-----------------+----------+-------+-------+
  17.   | Pool | type | used | avail |
  18.   +-----------------+----------+-------+-------+
  19.   | cephfs_metadata | metadata | 0 | 46.4G |
  20.   | cephfs_data | data | 0 | 46.4G |
  21.   +-----------------+----------+-------+-------+
  22.   +-------------+
  23.   | Standby MDS |
  24.   +-------------+
  25.   +-------------+
  26.   +---------+---------+
  27.   | version | daemons |
  28.   +---------+---------+
  29.   +---------+---------+
 7.1创建dashboard
[root@user33 ~]# ceph mgr module enable dashboard
7.2禁用ssl加密
[root@user33 ~]# ceph config set mgr mgr/dashboard/ssl false
7.3配置IP和端口
  1.   # 配置IP和端口
  2.   [root@user33 ~]# name="user33"
  3.   [root@user33 ~]# ip=10.18.33.143
  4.   [root@user33 ~]# POART=8443
  5.    
  6.   [root@user33 ~]# ceph config set mgr "mgr/dashboard/$name/server_addr" "$IP"
  7.   [root@user33 ~]# ceph config set mgr "mgr/dashboard/$name/server_port" "$PORT"
  8.   [root@user33 ~]# ceph config set mgr "mgr/dashboard/$name/ssl_server_port" "$PORT"
  9.    
  10.   [root@user33 ~]# ceph config set mgr mgr/dashboard/user33/server_addr 10.18.33.143
  11.   [root@user33 ~]# ceph config set mgr mgr/dashboard/user33/server_port 8443
  12.    
  13.   # 设置账户密码
  14.   [root@user33 ~]# ceph dashboard set-login-credentials admin admin
  15.    
  16.   # 更改ceph配置文件
  17.   [root@user33 ~]# echo "mgr_modules = dashboard" >> ./ceph/ceph.config
  18.   [root@user33 ~]# echo "mgr/dashboard/user33/server_addr = 10.18.33.143" >> ./ceph/ceph.config
  19.   [root@user33 ~]# echo "mgr/dashboard/user33/server_port = 8443" >> ./ceph/ceph.config
  20.    
  21.   [root@user33 ceph]# systemctl restart [email protected]
  22.    
  23.   # 创建dashboard使用的用户
  24.   [root@admin03 ceph]# radosgw-admin user create --uid=admin --display-name=admin --system
  25.    
  26.   #将两个key保存到单独一个文件中,以便下一步使用
  27.   [root@admin03 ceph]# echo "9AJ3IIIR4RA4TKOYFZGI" | tee -a access_key
  28.   9AJ3IIIR4RA4TKOYFZGI
  29.   [root@admin03 ceph]# echo "ruXgDbxCEoPus1LTSbNUdotN2v3B21jI1k26GvQy" | tee -a secret_key
  30.   ruXgDbxCEoPus1LTSbNUdotN2v3B21jI1k26GvQy
  31.    
  32.    
  33.   # 向仪表板提供凭据
  34.   # 配置Ceph集群的仪表盘(Dashboard)与Rados Gateway(RGW)之间的身份验证信息
  35.   [root@admin03 ceph]# ceph dashboard set-rgw-api-access-key access_key
  36.   Option RGW_API_ACCESS_KEY updated
  37.   [root@admin03 ceph]# ceph dashboard set-rgw-api-secret-key secret_key
  38.   Option RGW_API_SECRET_KEY updated
  39.    
  40.   # Shell命令替换功能来从文件中读取密钥,并将其设置为RGW API的访问密钥
  41.   [root@admin03 ceph]# ls
  42.   access_key ceph.bootstrap-osd.keyring ceph.conf ceph.mon.keyring
  43.   ceph.bootstrap-mds.keyring ceph.bootstrap-rgw.keyring ceph-deploy-ceph.log secret_key
  44.   ceph.bootstrap-mgr.keyring ceph.client.admin.keyring ceph.log
  45.   [root@admin03 ceph]# ceph dashboard set-rgw-api-access-key $(cat access_key)
  46.   Option RGW_API_ACCESS_KEY updated
  47.   [root@admin03 ceph]# ceph dashboard set-rgw-api-secret-key $(cat secret_key)
  48.   Option RGW_API_SECRET_KEY updated
  49.    
  50.    
  51.    
  52.   [root@admin03 ceph]# mkdir /mnt/cephfs
  53.   [root@admin03 ceph]# echo "Hello, CephFS\!" > /mnt/cephfs/testfile.txt
  54.   [root@admin03 ceph]# sudo mount -t ceph 10.18.33.143:8443:/ /mnt/cephfs -o name=client.admin,secret=
  55.   ruXgDbxCEoPus1LTSbNUdotN2v3B21jI1k26GvQy
  56.   adding ceph secret key to kernel failed: Invalid argument.
  57.   failed to parse ceph_options
  58.    
  59.   # 重启dashboard
  60.   [root@user33 ~]# ceph mgr module disable dashboard
  61.   [root@user33 ~]# ceph mgr module enable dashboard

第三部分(S3cmd的部署配置)

 1.S3cmd安装
[root@user33 ~]# yum install -y s3cmd
 2.创建s3cmd使用的用户生成key
[root@user33 ~]# radosgw-admin user create --uid=admin --display-name=admin
3.1 配置s3使其可以连接到ceph集群
  1.   [root@user33 ~]# s3cmd --configure
  2.    
  3.   Enter new values or accept defaults in brackets with Enter.
  4.   Refer to user manual for detailed description of all options.
  5.    
  6.   Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
  7.   Access Key: 9AJ3IIIR4RA4TKOYFZGI # 复制上一步的对应key值
  8.   Secret Key: ruXgDbxCEoPus1LTSbNUdotN2v3B21jI1k26GvQy # 复制上一步的对应key值
  9.   Default Region [US]: # 默认回车
  10.    
  11.   Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.
  12.   S3 Endpoint [s3.amazonaws.com]: # 默认回车
  13.    
  14.   Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars can be used
  15.   if the target S3 system supports dns based buckets.
  16.   DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: # 默认回车
  17.    
  18.   Encryption password is used to protect your files from reading
  19.   by unauthorized persons while in transfer to S3
  20.   Encryption password:
  21.   Path to GPG program [/usr/bin/gpg]: # 默认回车
  22.    
  23.   When using secure HTTPS protocol all communication with Amazon S3
  24.   servers is protected from 3rd party eavesdropping. This method is
  25.   slower than plain HTTP, and can only be proxied with Python 2.7 or newer
  26.   Use HTTPS protocol [Yes]: no # 输入no
  27.    
  28.   On some networks all internet access must go through a HTTP proxy.
  29.   Try setting it here if you can't connect to S3 directly
  30.   HTTP Proxy server name: # 默认回车
  31.    
  32.   New settings:
  33.   Access Key: 9AJ3IIIR4RA4TKOYFZGI
  34.   Secret Key: ruXgDbxCEoPus1LTSbNUdotN2v3B21jI1k26GvQy
  35.   Default Region: US
  36.   S3 Endpoint: s3.amazonaws.com
  37.   DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.s3.amazonaws.com
  38.   Encryption password:
  39.   Path to GPG program: /usr/bin/gpg
  40.   Use HTTPS protocol: False
  41.   HTTP Proxy server name:
  42.   HTTP Proxy server port: 0
  43.    
  44.   Test access with supplied credentials? [Y/n] n # 输入n
  45.    
  46.   Save settings? [y/N] y # 输入y
  47.   Configuration saved to '/root/.s3cfg'
3.2 修改刚生成的/root/.s3cfg中的三处配置
  1.   [root@user33 ~]# cat /root/.s3cfg | grep -n cloudfront_host
  2.   11:cloudfront_host = 10.18.33.143
  3.   [root@user33 ~]# cat /root/.s3cfg | grep -n host_base
  4.   35:host_base = 10.18.33.143:7480
  5.   [root@user33 ~]# cat /root/.s3cfg | grep -n host_bucket
  6.   36:host_bucket = 10.18.33.143:7480
3.3 创建名为test-bucket的bucket
  1.   [root@user33 ~]# s3cmd mb s3://test-bucket
  2.   Bucket 's3://test-bucket/' created
3.6 查看bucket桶列表
  1.   [root@user33 ~]# s3cmd ls
  2.   2024-04-22 06:49 s3://test-bucket
    当单纯遇到单蠢时 关注  

标签:Ceph,ceph,admin03,user33,ddsadasdasd,root,pool
From: https://www.cnblogs.com/gord/p/18431162

相关文章