Ceph--文件存储和对象存储学习

0.部署架构

主机功能
10.202deploy,ntp
10.230osd,mon,mgr,s3cmd
10.203osd,mds,rgw,client,mgr
1.第一台主机作为ntp服务的server端(如果环境有ntp可以直接使用)
2.第二台主机安装s3cmd做测试对象存储
3.第三台主机client做测试文件存储

ceph-deploy是一种工具,可以轻松快速地部署Ceph集群

ceph-osd是Ceph分布式文件系统的对象存储守护进程。它负责将对象存储在本地文件系统上,并通过网络提供对它们的访问

ceph-mon 分布式文件系统的集群monitor daemon。它提供了集群成员资格,配置和状态的极其可靠和持久的存储。

ceph-mgr即Ceph Manager Daemon, 主要分担和扩展monitor的部分功能,减轻monitor的负担,让更好地管理ceph存储系统

ceph-mds是Ceph分布式文件系统的元数据服务器守护程序。一个或多个ceph-mds实例共同管理文件系统命名空间,协调对共享OSD群集的访问

ceph-rgw对象存储使用Ceph对象网关守护程序(radosgw),它是一个用于与Ceph存储集群交互的HTTP服务器。由于它提供与OpenStack Swift和Amazon S3兼容的接口

https://docs.ceph.com/docs/mimic/man/8/ceph-deploy/?highlight=deploy [ceph官方介绍]

1.部署前准备

  1. 关闭防火墙、selinux等
  2. 添加主机hosts:(三台主机都添加)
添加主机hosts:(三台主机都添加)
	xx.xx.10.202 hu
	xx.xx.10.203 es-9
	xx.xx.10.230 hu230
  1. 配置互信

1)新加ceph用户:

# useradd -d /home/ceph -m ceph
# passwd ceph

2)给ceph用户sudo权限:

visudo 进入sudoers文件,添加:
ceph    ALL=(ALL)      NOPASSWD:ALL

3)互信:

a.切换ceph用户下配置互信
b.执行ssh-keygen,一直下一步
c.执行并输入密码做互信:
	ssh-copy-id hu
	ssh-copy-id es-9
	ssh-copy-id hu230
  1. 配置NTP:

1)三台主机安装ntp:

	yum install ntp 

2)202主机修改配置:

	a.修改/etc/ntp.conf,注释掉默认的四个server
		添加:
		server 127.127.1.0 minpoll 4
		fudge 127.127.1.0 stratum 0
		restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
	b.修改/etc/ntp/step-tickers文件,注释 0.centos.pool.ntp.org
		添加:
		127.127.1.0

3)配置ntp自启动与启动ntp:

	# systemctl enable ntpd
	# systemctl restart ntpd

4)其他主机修改配置:

	修改/etc/ntp.conf,注释掉四行server,添加一行server指向ntp-server
	server 192.168.10.202

5)配置ntp自启动与启动ntp:

	# systemctl enable ntpd
	# systemctl restart ntpd

6)查看时间同步:

	# ntpq -p

三台主机时间同步

  1. 配置ceph源:
cat << 'EOF' > /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.cloud.tencent.com/ceph/rpm-mimic/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.cloud.tencent.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.cloud.tencent.com/ceph/rpm-mimic/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.cloud.tencent.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
EOF
  1. 添加新磁盘:
1.虚拟化中心对于主机新加7GB的硬盘【我的测试主机为虚机非物理机】
2.查看磁盘:$ sudo fdisk -l /dev/sdb

3.格式化磁盘
	a.查看硬盘分区
	$ sudo parted /dev/sdb print
	
	b.格式化为gpt格式
	$ sudo parted /dev/sdb mklabel gpt
	
	c.将整个硬盘切成一个区
	$ sudo parted /dev/sdb mkpart primary xfs 0% 100% 
	$ sudo partprobe
	
	d.确认分区存在
	$ lsblk /dev/sdb
	
	e.格式化文件系统格式为xfs
	$ sudo mkfs -t xfs /dev/sdb1
	
	f.确认格式正确
	$ sudo blkid /dev/sdb1

2.部署ceph集群

安装13.x的mimic版本的ceph

  1. deploy节点安装ceph-deploy:
    $ sudo yum install ceph-deploy
  1. deploy节点创建路径
    $ mkdir cluster
  1. 进入cluster路径执行:
    $ ceph-deploy new hu230
    [创建一个新集群,new后跟mon的主机名]
  1. 修改ceph.conf文件
      osd pool default size = 2            //osd个数
      mon_host = 192.168.10.230           //实际mon主机ip
  1. 在deploy节点执行,所有节点安装ceph
    $ ceph-deploy install hu hu230 es-9
    [安装ceph,install后跟集群内所有节点主机名]
  1. 初始化monitor,在deploy节点上执行
    $ ceph-deploy --overwrite-conf mon create-initial 
    $ ceph-deploy gatherkeys hu230
  1. 安装MGR
    $ ceph-deploy  mgr create  hu230 es-9    
    [安装mgr服务,create后跟主机名称,单节点或集群 (如前面架构定了两台,就写两个主机名)]
  1. 启动osd
    $ ceph-deploy  osd create --data /dev/sdb1 hu230
    $ ceph-deploy  osd create --data /dev/sdb1 es-9
    [创建两台osd集群]
  1. 验证
    $ sudo ln -s /home/ceph/cluster/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
    $ ceph health 
    $ ceph -s
  1. 启动:
    sudo systemctl enable ceph-mon.target
    sudo systemctl enable ceph-osd.target
    sudo systemctl enable ceph.target
    [执行服务自启动 (新版本在安装后的日志可以看到已经执行自启动了)]

ceph状态

3.ceph-文件存储

  1. 部署MDS在deploy节点上执行(文件存储)
$ ceph-deploy mds create es-9
[创建mds服务]
  1. mds节点
$ceph-deploy admin  es-9
$sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
[将ceph.client.admin.keyring文件传到es-9主机并赋权]
  1. 创建存储池-deploy节点
ceph osd pool create cephfs_data 128   //创建存储数据的存储池,128是PG数量
ceph osd pool create cephfs_metadata 128  //创建存储元数据的存储池
  1. 创建文件系统-deploy节点
$ ceph fs new cephfs cephfs_metadata cephfs_data
[创建cephfs_metadata cephfs_data,文件系统名称自取如cephfs]
  1. 查看创建文件系统
$ ceph fs ls 
  1. 查看mds状态
$ ceph mds stat 

mds状态信息

  1. 测试验证:(在client主机测试)
1.安装ceph-fuse

2.内核驱动挂载Ceph文件系统
	# mount -t ceph xxx.xxx.10.230:6789:/ /file/ccee/ -o name=admin,secret=AQDBEV1d6v2QGRAAhLGBVkgkKTAUR700dAPc9A==
	# umount  /file/ccee/
mon的ip与端口(默认6789);secret为ceph auth get-key client.admin查询或ceph.client.admin.keyring文件读出

3.用户控件挂载Ceph文件系统
	# ceph-fuse -m xxx.xxx..10.230:6789 /file/ccee/
	# fusermount -u /file/ccee/

4.验证:
# df -hT

5.测试
	同理其他主机挂载后,在对应路径下创建文件,另外主机会同步文件

df磁盘挂载信息

4.ceph-对象存储

  1. 安装rgw服务
	$ ceph-deploy rgw create  es-9
	[默认在rgw主机启用7480端口]

启用rgw

  1. 创建用户生成密钥
$ radosgw-admin user create --uid="ruser" --display-name="RUSER"

ak与sk

  1. 测试对象存储
1.安装s3cmd:
 	yum  install s3cmd -y
2.创建配置文件:
	[root@hu230 ~]# cat /root/.s3cfg 
	[default]
	access_key = CH9Q9868NK96G2V3FYXW
	secret_key = TbRFPS3DXV53zwWkwEhGJ9OwX2zk9FCTdMwZ3cit
	host_base = xxx.xxx.10.203:7480
	host_bucket = %(bucket)s.xxx.xxx.10.203
	use_https = False
3.测试:
	s3cmd ls  #查看可用的bucket
	s3cmd mb s3://xxx_bucket  #创建bucket,且bucket名字是唯一的,不能重复
	s3cmd ls s3://xxx_bucket  #列出bucket内容
	s3cmd put xx.txt s3://xxx_bucket  #上传本地file到指定的bucket
	s3cmd put --acl-public xx.txt s3://xxx_bucket  #上传公开访问权限的文件
	s3cmd get s3://xxx_bucket  /xx.txt  #下载file到本地
	s3cmd rb s3://my-bucket-name删除空 bucket
	s3cmd du -H s3://my-bucket-namebucket所占用的空间大小

s3cmd

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值