主机 | 功能 |
---|---|
10.202 | deploy,ntp |
10.230 | osd,mon,mgr,s3cmd |
10.203 | osd,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官方介绍]
添加主机hosts:(三台主机都添加)
xx.xx.10.202 hu
xx.xx.10.203 es-9
xx.xx.10.230 hu230
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:
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
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.虚拟化中心对于主机新加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
安装13.x的mimic版本的ceph
$ sudo yum install ceph-deploy
$ mkdir cluster
$ ceph-deploy new hu230
[创建一个新集群,new后跟mon的主机名]
osd pool default size = 2 //osd个数
mon_host = 192.168.10.230 //实际mon主机ip
$ ceph-deploy install hu hu230 es-9
[安装ceph,install后跟集群内所有节点主机名]
$ ceph-deploy --overwrite-conf mon create-initial
$ ceph-deploy gatherkeys hu230
$ ceph-deploy mgr create hu230 es-9
[安装mgr服务,create后跟主机名称,单节点或集群 (如前面架构定了两台,就写两个主机名)]
$ ceph-deploy osd create --data /dev/sdb1 hu230
$ ceph-deploy osd create --data /dev/sdb1 es-9
[创建两台osd集群]
$ sudo ln -s /home/ceph/cluster/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
$ ceph health
$ ceph -s
sudo systemctl enable ceph-mon.target
sudo systemctl enable ceph-osd.target
sudo systemctl enable ceph.target
[执行服务自启动 (新版本在安装后的日志可以看到已经执行自启动了)]
$ ceph-deploy mds create es-9
[创建mds服务]
$ceph-deploy admin es-9
$sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
[将ceph.client.admin.keyring文件传到es-9主机并赋权]
ceph osd pool create cephfs_data 128 //创建存储数据的存储池,128是PG数量
ceph osd pool create cephfs_metadata 128 //创建存储元数据的存储池
$ ceph fs new cephfs cephfs_metadata cephfs_data
[创建cephfs_metadata cephfs_data,文件系统名称自取如cephfs]
$ ceph fs ls
$ ceph mds stat
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.测试
同理其他主机挂载后,在对应路径下创建文件,另外主机会同步文件
$ ceph-deploy rgw create es-9
[默认在rgw主机启用7480端口]
$ radosgw-admin user create --uid="ruser" --display-name="RUSER"
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所占用的空间大小