以下内容均在华为云ECS Centos7.4上测试。
修改主机名,后面使用到的节点名称就是对应的主机名称
# 把主机名称修改为ceph1
hostnamectl set-hostname ceph1
关闭selinux和firewall
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
systemctl disable firewalld.service
systemctl stop firewalld.service
修改hosts文件
首先使用$ ip addr
查看主机的内网IP地址,结果如下图示,主机内网IP地址为192.168.0.119/24
,此IP地址非常重要,之后频繁使用。
然后将IP地址和主机名称写入hosts文件
# 192.168.0.119 为内网IP,ceph1为节点名称
echo "192.168.0.119 ceph1" >> /etc/hosts
安装ceph-deploy
首先配置 ceph 源,可以自己编写,也可使用如下阿里云提供的源:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
cat <<END >/etc/yum.repos.d/ceph.repo
[norch]
name=norch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch/
enabled=1
gpgcheck=0
[x86_64]
name=x86_64
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/
enabled=1
gpgcheck=0
END
配置源后,开始安装
yum -y install ceph-deploy && yum -y install ceph ceph-radosgw python-setuptools python2-subprocess32
运行Ceph
创建配置文件目录,后续命令都是在该目录下执行
mkdir ~/ceph
cd ~/ceph
初始化ceph集群
ceph-deploy new ceph1
ceph deploy new
修改ceph.conf配置文件为单节点:
echo "osd pool default min_size = 1" >>ceph.conf
echo "osd pool default size = 1" >>ceph.conf
echo "public_network =192.168.0.119/24" >>ceph.conf
初始化ceph的监控,启动mon 进程。目录下会新生成ceph.client.admin.keyring 等5个配置文件
ceph-deploy mon create-initial
ceph deploy mon
将ceph.client.admin.keyring拷贝到各个节点上
ceph-deploy admin ceph1
ceph deploy admin
启动mgr进程
ceph-deploy mgr create ceph1
ceph deploy mgr create
$ ceph -s
查看集群状态,如图所示,HEALTH_OK
, HEALTH_WARN
都表明ceph集群安装成功可以使用了
准备数据盘
fdisk -l
fdisk -l
上图表明主机已经有一块系统盘
/dev/vda
还有一块/dev/vdb
未分区我们对
/dev/vdb
进行分区并作为数据盘使用。
fdisk /dev/vdb
在键盘上依次输入
# 添加一个分区
n
# 主分区
P
# 第一个回车指是开始的磁盘扇区大小
ENTER
# 第二个回车指是结束的磁盘扇区大小
ENTER
# 写入磁盘
w
此时数据盘被分好了。
fdisk -l
格式化磁盘
mkfs.ext4 /dev/vdb
mkfs4
创建osd
ceph-deploy osd create --data /dev/vdb ceph1
启动rgw
启动rgw对象存储进程
ceph-deploy rgw create ceph1
输入以下命令,查看集rgw是否正常启动。RGW服务默认启动的7480端口
curl 192.168.0.119:7480
curl 公网IP:7480
出现如下结果表示RGW进程正常启动
rgw
设置pool 和 pgs的值:
ceph osd pool set .rgw.root pg_num 64
ceph osd pool set .rgw.root pgp_num 64
利用s3创建 桶来测试,先输入以下命令,创建用户,并赋予读写权限 :
radosgw-admin user create --uid="admin" --display-name="administrator"
radosgw-admin caps add --uid="admin" --caps="users=read, write; usage=read,write; buckets=read,write"
查看用户信息,记录access_key和secret_access_key的值
radosgw-admin user info --uid="admin"
key
输入以下命令,利用python脚本来验证 桶是否创建成功:
yum install python-boto -y
vi s3.py
import boto
import boto.s3.connection
host = '192.168.0.119'
access_key = ''
secret_key = ''
conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_access_key = secret_key,
host =host, port=7480,
is_secure=False,
calling_format = boto.s3.connection.OrdinaryCallingFormat()
)
bucket = conn.create_bucket('py-first')
for bucket in conn.get_all_buckets():
print "{name}\t{created}".format(name = bucket.name, created = bucket.creation_date)
test
出现上述内容说明ceph部署成功。之后可以使用python操作ceph。推荐boto3。
[Reference]:
Centos--单节点Ceph对象存储部署
单节点Ceph对象存储简单部署(1)
Centos挂载硬盘完整图文教程(查看、分区、格式化、挂载)磁盘
网友评论