Ceph 分布式存储架构(三)

Ceph 三种存储方式

一、配置块存储 

        创建块设备之前需要创建存储池,存储池相关命令需要在mon节点执行--也就是规划好的node1节点 创建存储池:

[ceph@node1 ~]$ sudo ceph osd pool create rbd 128 128 pool 'rbd' created

注释: 创建pool

# 若少于5个OSD, 设置pg_num为128。

# 5~10个OSD,设置pg_num为512。

# 10~50个OSD,设置pg_num为4096。 

 初始化存储池:

[ceph@node1 ~]$ sudo rbd pool init rbd

准备客户端client(客户端操作):

升级client内核到最新版本 更新前,内核版本为:

[root@client ~]# uname -r
3.10.0-1160.el7.x86_64

升级方法 导入key

[root@client ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo的yum源

[root@client ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

查看可用的系统内核包

[root@client ~]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装内核

[root@client ~]# yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y

查看内核默认启动顺序

[root@client ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg

CentOS Linux (6.5.7-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c2103ce40fd641b2bb0b9118ead8f4ff) 7 (Core)

选择处于0位置的新内核为默认启动内核

[root@client ~]# grub2-set-default 0
[root@client ~]# reboot

重启后的内核版本:

[root@client ~]# uname -r
6.5.7-1.el7.elrepo.x86_64

删除旧内核

[root@client ~]# yum remove kernel -y client

安装ceph: 环境准备参考部署ceph文档开头环境准备的2-5步 安装依赖包、epel、配置ceph源

[root@client ~]# yum install -y python-setuptools epel-release
[root@client ~]# vim /etc/yum.repos.d/ceph.repo

[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1

[root@client ~]# yum install ceph ceph-radosgw  -y
[root@client ~]# ceph --version
ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)

 修改client下该文件的读权限:

[root@client ~]# chmod +r /etc/ceph/ceph.client.admin.keyring

修改client下的ceph配置文件:
这一步是为了解决映射镜像时出错问题

[root@client ~]# vi /etc/ceph/ceph.conf

#在global section下添加:

rbd_default_features = 1

client节点创建块设备镜像:单位是M,这里是4个G

[root@client ~]# rbd create foo --size 4096 client

节点映射镜像到主机:

[root@client ~]# rbd map foo --name client.admin /dev/rbd0 client

节点格式化块设备:

[root@client ~]# mkfs.ext4 -m 0 /dev/rbd/rbd/foo

client节点mount块设备:

[root@client ~]# mkdir /mnt/ceph-block-device
[root@client ~]# mount /dev/rbd/rbd/foo /mnt/ceph-block-device

客户端重起之后,设备需要重新作映射,不然可能会卡死,有需要做开机挂载可以在/etc/rc.local中进行映射和挂载

在/mnt/ceph-block-device写入数据,测试: 

[root@client ceph-block-device]# vim /etc/rc.local

二、配置对象存储

由于客户端已经升级了内核,并安装了客户端,在做对象存储是就不在进行客户端配置了

# 在node1上创建rgw对象网关,端口为7480

[ceph@admin my-cluster]$ ceph-deploy rgw create node1
[ceph@admin my-cluster]$ ceph-deploy rgw create node2
[ceph@admin my-cluster]$ ceph-deploy rgw create node3

node1查看 :

# 在客户端测试连接对象网关。连接对象存储需要用户账号秘钥连接,所以需要再客户端创建用户秘钥 #创建账号秘钥,如下所示(radosgw-admin命令其实是yum -y install ceph-common安装的)

[root@client ceph-block-device]# radosgw-admin user create --uid="Yebati" --display-name="Yebati"
{
    "user_id": "Yebati",
    "display_name": "Yebati",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [],
    "keys": [
        {
            "user": "Yebati",
            "access_key": "F9OL8KWEEB3HM811Z3UW",
            "secret_key": "zKzFupLsI5LiU4NEuUEQGHu4hadN7H9uVF7MNgDd"
        }
    ],
    "swift_keys": [],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "check_on_raw": false,
        "max_size": -1,
        "max_size_kb": 0,
        "max_objects": -1
    },
    "temp_url_keys": [],
    "type": "rgw"
}
[root@client ~]# yum install s3cmd -y

         #安装s3模块,用于连接对象存储#安装好s3包后就会有s3cmd命令用于连接对象存储,为了方便,我们可以把一些连接参数写成一个.s3cfg文件,s3cmd命令默认会去读这个文件。

[root@client ~]# vim /root/.s3cfg			#创建文件,并写入一下内容

[default]
access_key = "F9OL8KWEEB3HM811Z3UW"
secret_key = "zKzFupLsI5LiU4NEuUEQGHu4hadN7H9uVF7MNgDd"
host_base = 192.168.1.8:7480
host_bucket = 192.168.1.8:7480/%(bucket)
cloudfront_host = 192.168.1.8:7480
use_https = False

# s3cmd命令测试连接对象存储 

[root@client ceph]# s3cmd mb s3://Yebati

#创建一个名为Yebati的桶,桶的概念可理解为目录

 

[root@client ~]# s3cmd put /var/log/yum.log  s3://Yebati

upload: '/var/log/yum.log' -> 's3://Yebati/yum.log'  [1 of 1]
 6094 of 6094   100% in    1s     4.95 KB/s  done

[root@client ~]# s3cmd get s3://Yebati/yum.log

# 生成带签名的url
[root@client ~]# s3cmd signurl s3://Yebati/yum.log $(date -d 'now + 1 year' +%s)

http://192.168.1.8:7480/Yebati/yum.log?AWSAccessKeyId=F9OL8KWEEB3HM811Z3UW&Expires=1729409249&Signature=ZSF%2Bkng7zQ7f%2BNjXY2LHfHtNTk8%3D

  

三、 配置文件系统

 # 创建Ceph文件存储 # 要运行Ceph文件系统, 你必须先创建至少带一个mds的Ceph存储集群(Ceph块设备和Ceph对象存储不使用MDS)。 # Ceph MDS: Ceph文件存储类型存放与管理元数据metadata的服务。

#第1步、 在node1节点创建mds服务(最少创建一个mds,也可以做多个mds实现HA)

[cephu@admin my-cluster]$ ceph-deploy mds create node1 node2 node3

#第2步、 一个Ceph文件系统需要至少两个RADOS存储池,一个用于存放数据,一个用于存放元数据,下面我们就来创建这两个池

[root@node1 ceph]# ceph osd pool create ceph_data 16 #创建ceph_data池,用于存数据 
[root@node1 ceph]# ceph osd pool create ceph_metadata 8 #创建ceph_metadata池,用于存元数据

#第3步、创建ceph文件系统,并确认客户端访问的节点

[root@node1 ceph]# ceph fs new cephfs ceph_metadata ceph_data

new fs with metadata pool 9 and data pool 8

#cephfs就是ceph文件系统名,即客户端挂载点,ceph_metadata是上一步创建的元数据池,ceph_data是上一步创建的数据此,这两个池的顺序不能乱  

[root@node1 ~]# ceph fs ls
name: cephfs, metadata pool: ceph_metadata, data pools: [ceph_data ]

 # 客户端挂载

[root@node1 ~]# cd /etc/ceph
[root@node1 ceph]# cat ceph.client.admin.keyring
[client.admin]
        key = AQC4FjFlBv+aMhAAg3H+Dq3xGxbQcA8/f2IUTg==

#在node1上查看客户端的秘钥文件内容,这个文件叫ceph.client.admin.keyring,其中admin是用户名 [client.admin] #admin是用户名key = AQC4FjFlBv+aMhAAg3H+Dq3xGxbQcA8/f2IUTg== #这个就是客户端的秘钥

 [root@client ~]# mkdir /etc/ceph && cd /etc/ceph

#在cline客户端创建一个/etc/ceph目录

[root@client ceph]# echo 'AQC4FjFlBv+aMhAAg3H+Dq3xGxbQcA8/f2IUTg==' >> admin.key

#新建一个秘钥文件,并把从node1上看到的客户端秘钥复制到这个文件里来

[root@client ceph]# mkdir /cephfs_data

先创建一个目录作为挂载点

[root@client ceph]# mount.ceph node1:6789:/ /cephfs_data/ -o name=admin,secretfile=/etc/ceph/admin.key

#解读:node1:6789:/ /cephfs_data/,其中6789是mon的端口,客户端挂载连接找mon的,因为我们node1上创建了3个mon,所以这里写node2,node3都可以,斜杠表示找根,找node1的根就是找我们在node1上创建的cephfs文件系统,/cephfs_data/表示挂载到本地的ceph_data目录,-o表示指定参数选项,name=admin,secretfile=/etc/ceph/admin.key 表示使用用户名为admin,秘钥使用/etc/ceph/admin.key秘钥文件进行连接。

[root@client ceph]# df -h

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值