RWG如何创建自定义数据pool的实例
本文适用于jewel以上版本(含)
本文用到的软件版本如下
ceph:version 10.2.7
OS: Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux
1. 新建pool
创建数据pool,注意每个pool的pg配置规划,可以参考http://ceph.com/pgcalc/进行设计
ceph osd pool create .rgw.root 16 16
ceph osd pool create demo.rgw.data.root 16 16
ceph osd pool create demo.rgw.control 16 16
ceph osd pool create demo.rgw.gc 16 16
ceph osd pool create demo.rgw.log 16 16
ceph osd pool create demo.rgw.intent-log 16 16
ceph osd pool create demo.rgw.usage 16 16
ceph osd pool create demo.rgw.users.keys 16 16
ceph osd pool create demo.rgw.users.email 16 16
ceph osd pool create demo.rgw.users.swift 16 16
ceph osd pool create demo.rgw.users.uid 16 16
ceph osd pool create demo.rgw.buckets.index 16 16
ceph osd pool create demo.rgw.buckets.data 64 64
ceph osd pool create demo.rgw.buckets.non-ec 16 16
2. 配置文件准备
ceph.conf配置
[client.radosgw.us-zone1]
rgw dns name = s3.ceph.work
rgw frontends = "civetweb port=80"
host = radosgw-1
keyring = /etc/ceph/ceph.client.radosgw.keyring
rgw socket path = /home/ceph/var/run/ceph-client.radosgw.us-zone1.sock
log file = /home/ceph/log/radosgw.us-zone1.log
rgw print continue = false
rgw content length compat = true
zone配置
# zone.json
{
"id": "2f58efaa-3fa2-48b2-b996-7f924ae1215c",
"name": "demo",
"domain_root": "demo.rgw.data.root",
"control_pool": "demo.rgw.control",
"gc_pool": "demo.rgw.gc",
"log_pool": "demo.rgw.log",
"intent_log_pool": "demo.rgw.intent-log",
"usage_log_pool": "demo.rgw.usage",
"user_keys_pool": "demo.rgw.users.keys",
"user_email_pool": "demo.rgw.users.email",
"user_swift_pool": "demo.rgw.users.swift",
"user_uid_pool": "demo.rgw.users.uid",
"system_key": {
"access_key": "",
"secret_key": ""
},
"placement_pools": [
{
"key": "default-placement",
"val": {
"index_pool": "demo.rgw.buckets.index", #index pool
"data_pool": "demo.rgw.buckets.data", #数据pool
"data_extra_pool": "demo.rgw.buckets.non-ec",
"index_type": 0
}
}
],
"metadata_heap": "",
"realm_id": ""
}
zonegroup配置
# zonegroup.json
{
"id": "9d07fb3c-45d7-4d63-a475-fd6ebd41b722", #Zonegroup的ID
"name": "zg", #zonegroup名称
"api_name": "", #bucket的localtion定义在这里
"is_master": "true",
"endpoints": [],
"hostnames": [],
"hostnames_s3website": [],
"master_zone": "2f58efaa-3fa2-48b2-b996-7f924ae1215c", #zone的ID
"zones": [
{
"id": "2f58efaa-3fa2-48b2-b996-7f924ae1215c", #zone的ID
"name": "demo", #zone名称
"endpoints": [],
"log_meta": "false",
"log_data": "false",
"bucket_index_max_shards": 0,
"read_only": "false"
}
],
"placement_targets": [
{
"name": "default-placement",
"tags": []
}
],
"default_placement": "default-placement",
"realm_id": ""
}
3. 导入配置文件
radosgw-admin realm create --rgw-realm=nt --default #新建一个realm名称为nt
radosgw-admin zonegroup set < zonegroup.json --rgw-realm=nt --rgw-zonegroup=zg --default #导入之前的zonegroup配置,zonegroup名称为zg
radosgw-admin zone set < zone.json --rgw-zonegroup=zg --rgw-zone=demo --master --default #导入zone配置,zone名称为demo
/etc/init.d/radosgw start #启动服务
4. 验证
新建用户
radosgw-admin user create --uid=s3user --display-name=s3user
ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
92114M 88985M 3128M 3.40
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
.rgw.root 73 2072 0 88558M 12
demo.rgw.data.root 74 609 0 88558M 2
demo.rgw.control 75 0 0 88558M 8
demo.rgw.gc 76 0 0 88558M 32
demo.rgw.log 77 50 0 88558M 128
demo.rgw.intent-log 78 0 0 88558M 0
demo.rgw.usage 79 0 0 88558M 0
demo.rgw.users.keys 80 13 0 88558M 1
demo.rgw.users.email 81 0 0 88558M 0
demo.rgw.users.swift 82 0 0 88558M 0
demo.rgw.users.uid 83 329 0 88558M 2
demo.rgw.buckets.index 84 0 0 88558M 1
demo.rgw.buckets.data 85 0 0 88558M 0
demo.rgw.buckets.non-ec 86 0 0 88558M 0
demo.rgw.users.keys和demo.rgw.users.uid 的OBJECTS>0,说明已经成功。