创建Ceph文件系统
搭建Ceph集群过程省略,参考如下:
https://blog.csdn.net/mengshicheng1992/article/details/120567117
1、创建Ceph文件系统
1、初始化MDS节点
在Deploy节点上初始化MDS节点:
cd /root/cluster/
ceph-deploy mds create node1.ceph.local node2.ceph.local node3.ceph.local
2、创建存储池
在Deploy节点上创建存储池:
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
3、创建文件系统
在Deploy节点上创建文件系统:
ceph fs new cephfs cephfs_metadata cephfs_data
4、查看文件系统
在Deploy节点上查看文件系统:
ceph fs ls
5、查看MDS状态
在Deploy节点上查看MDS状态:
ceph mds stat
2、使用Ceph文件系统
2.1 方式一:内核驱动方式
1、安装ceph-common
在Client节点上安装ceph-common:
yum -y install ceph-common
2、查看密钥
在Deploy节点上查看密钥:
cat /etc/ceph/ceph.client.admin.keyring
3、挂载
在Client节点上挂载文件系统:
内核驱动方式,密码存在命令行中,重启失效
mkdir /mycephfs/
mount -t ceph 192.168.0.10:/ /mycephfs -o name=admin,secret=AQBhxFNh8pTmChAAC6Gba1gvBYBhGXzZkSVJWw==
df -h
或者
1、安装ceph-common
在Client节点上安装ceph-common:
yum -y install ceph-common
2、查看密钥
在Deploy节点上查看密钥:
cat /etc/ceph/ceph.client.admin.keyring
3、挂载
在Client节点上挂载文件系统:
内核驱动方式,密码存在文件中,重启失效
cat > admin.secret << EOF
AQBhxFNh8pTmChAAC6Gba1gvBYBhGXzZkSVJWw==
EOF
mkdir /mycephfs/
mount -t ceph 192.168.0.10:/ /mycephfs -o name=admin,secretfile=/root/admin.secret
df -h
或者
1、安装ceph-common
在Client节点上安装ceph-common:
yum -y install ceph-common
2、查看密钥
在Deploy节点上查看密钥:
cat /etc/ceph/ceph.client.admin.keyring
3、挂载
在Client节点上挂载文件系统:
内核驱动方式,密码存在文件中,重启仍生效
cat > admin.secret << EOF
AQBhxFNh8pTmChAAC6Gba1gvBYBhGXzZkSVJWw==
EOF
mkdir /mycephfs/
vim /etc/fstab
192.168.0.10:6789:/ /mycephfs ceph name=admin,secretfile=/root/admin.secret,noatime 0 0
mount -a
df -h
2.2 方式二:用户空间文件系统方式
1、安装ceph-fuse
在Client节点上安装ceph-fuse:
yum -y install ceph-fuse
2、拷贝keyring文件和配置文件
在Client节点上拷贝Deploy节点上的keyring文件和配置文件至本地:
scp root@192.168.0.10:/etc/ceph/ceph.conf /etc/ceph/
scp root@192.168.0.10:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
3、挂载
在Client节点上挂载文件系统:
FUSE方式,重启失效
mkdir /mycephfs
ceph-fuse -m 192.168.0.10:6789 /mycephfs
df -h
或者
1、安装ceph-fuse
在Client节点上安装ceph-fuse:
yum -y install ceph-fuse
2、拷贝keyring文件和配置文件
在Client节点上拷贝Deploy节点上的keyring文件和配置文件至本地:
scp root@192.168.0.10:/etc/ceph/ceph.conf /etc/ceph/
scp root@192.168.0.10:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
3、挂载
在Client节点上挂载文件系统:
FUSE方式,重启仍生效
mkdir /mycephfs
vim /etc/fstab
id=admin,conf=/etc/ceph/ceph.conf /mycephfs fuse.ceph defaults 0 0
mount -a
df -h
四、Ceph块设备
1、创建Ceph块设备
1、创建存储池
在Deploy节点上创建存储池:
ceph osd pool create cephpool 128
2、创建块设备映像
在Deploy节点上创建块设备映像:
rbd create --size 1024 cephpool/cephimage --image-feature layering
3、获取映像列表
在Deploy节点上获取映像列表:
rbd list cephpool
4、查看映像信息
在Deploy节点上查看映像信息:
rbd info cephpool/cephimage
2、使用Ceph块设备
1、安装ceph-common
在Client节点上安装ceph-common:
yum -y install ceph-common
2、拷贝keyring文件和配置文件
在Client节点上拷贝Deploy节点上的keyring文件和配置文件至本地:
scp root@192.168.0.10:/etc/ceph/ceph.conf /etc/ceph/
scp root@192.168.0.10:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
3、映射块设备
在Client节点上映射块设备:
rbd map cephpool/cephimage --id admin
4、查看块设备
在Client节点上查看块设备:
rbd showmapped
ll /dev/rbd/cephpool
5、格式化块设备
在Client节点上格式化块设备:
mkfs.xfs /dev/rbd0
6、挂载块设备
在Client节点上挂载块设备:
mkdir /mycephrdb
mount /dev/rbd0 /mycephrdb
df -h
或者
mkdir /mycephrdb
vim /etc/fstab
/dev/rbd0 /mycephrdb xfs defaults 0 0
mount -a
df -h
五、Ceph对象存储
1、创建Ceph对象存储
1、安装RGW节点
在Deploy节点上安装RGW节点:
ceph-deploy install --rgw node1.ceph.local
ceph-deploy install --rgw node2.ceph.local
ceph-deploy install --rgw node3.ceph.local
2、初始化RGW节点
在Deploy节点上初始化RGW节点:
cd /root/cluster/
ceph-deploy rgw create node1.ceph.local
ceph-deploy rgw create node2.ceph.local
ceph-deploy rgw create node3.ceph.local
3、查看服务
在Deploy节点上查看服务:
curl http://node1.ceph.local:7480 -v
2、使用Ceph对象存储
1、创建S3用户
在Deploy节点上创建S3用户:
radosgw-admin user create --uid="mengshicheng" --display-name="First User"
记录密钥
"access_key": "OBHEXZB5LUYYQ67USHGK",
"secret_key": "H9BQlVAPVZe6wOk3Za6YCOyhNuMQ5ndDCcA0THmW"
2、安装S3客户端
在Client节点上安装S3客户端:
yum -y install python-boto
3、测试S3接口
在Client节点上测试S3接口:
cat > s3.py << EOF
#_*_ coding:utf-8 _*_
import boto.s3.connection
access_key = 'OBHEXZB5LUYYQ67USHGK'
secret_key = 'H9BQlVAPVZe6wOk3Za6YCOyhNuMQ5ndDCcA0THmW'
# 新建S3连接
conn = boto.connect_s3(
aws_access_key_id = access_key,
aws_secret_access_key = secret_key,
host = 'node1.ceph.local', port=7480,
is_secure=False, calling_format = boto.s3.connection.OrdinaryCallingFormat(),
)
# 新建Bucket
bucket = conn.create_bucket('my-s3-bucket')
# 显示Bucket
for bucket in conn.get_all_buckets():
print "{name}\t{created}".format(
name = bucket.name,
created = bucket.creation_date,
)
# 新建文件,并写入内容
key = bucket.new_key('file.txt')
key.set_contents_from_string('Hello World!')
# 列出Bucket文件
for key in bucket.list():
print "{name}\t{size}\t{modified}".format(
name = key.name,
size = key.size,
modified = key.last_modified,
)
EOF
python s3.py