說(shuō)明
Heketi允許管理一個(gè)或多個(gè)GlusterFS集群來(lái)添加和刪除存儲(chǔ)容量指黎。對(duì)于gluster的集群擴(kuò)容以及device刪除增加、volume新建增加都通過(guò)heketi來(lái)統(tǒng)一管理.
heketi創(chuàng)建cluster集群紊遵,統(tǒng)一管理gluster集群的node,device,volume苹丸。
- cluster: gluster node組成的集群
- node: glusterd實(shí)例
- device: 裸磁盤設(shè)備,供volume使用
- volume: 需要被使用的卷
容量擴(kuò)容
使用Heketi可以通過(guò)多種方式添加額外的存儲(chǔ)容量臂拓〈福可以添加新device押逼,增加集群大小或添加新的集群。
Adding new devices
添加更多設(shè)備時(shí)惦界,請(qǐng)記住將設(shè)備添加為一組挑格。例如,如果創(chuàng)建的卷使用副本為2沾歪,則應(yīng)將device添加到兩個(gè)節(jié)點(diǎn)(每個(gè)節(jié)點(diǎn)一個(gè)device)漂彤。如果使用副本3,則將device添加到三個(gè)節(jié)點(diǎn)灾搏。
使用Heketi cli挫望,可以將單個(gè)device添加到節(jié)點(diǎn),命令如下:
$ heketi-cli device add \
--name=/dev/vdc1
--node=3e098cb4407d7109806bb196d9e8f095
當(dāng)一次添加多個(gè)設(shè)備的一種更簡(jiǎn)單的方法是將新設(shè)備添加到用于設(shè)置群集的拓?fù)湮募?topology.json)中的節(jié)點(diǎn)描述中狂窑。然后重新運(yùn)行該命令以加載新拓?fù)湎卑濉O旅媸俏覀兿蚬?jié)點(diǎn)添加新的/dev/vdc2磁盤的示例
$ cat /data/heketi/conf/topology.json
{
"clusters": [
{
"nodes": [
{
"node": {
"hostnames": {
"manage": [
"k8s1"
],
"storage": [
"10.111.209.188"
]
},
"zone": 1
},
"devices": [
"/dev/vdc1",
"/dev/vdc2"
]
},
{
"node": {
"hostnames": {
"manage": [
"k8s2"
],
"storage": [
"10.111.209.189"
]
},
"zone": 1
},
"devices": [
"/dev/vdc1",
"/dev/vdc2"
]
},
{
"node": {
"hostnames": {
"manage": [
"k8s3"
],
"storage": [
"10.111.209.190"
]
},
"zone": 1
},
"devices": [
"/dev/vdc1",
"/dev/vdc2"
]
}
]
}
]
}
我們?yōu)槊颗_(tái)機(jī)器分別添加了/dev/vdc2磁盤.
$ heketi-cli topology load --json=/data/heketi/conf/topology.json
Found node k8s1 on cluster 6fd6bf78b84315e12abcf8b6db6b1a40
Found device /dev/vdc1
Adding device /dev/vdc2 ... OK
Found node k8s2 on cluster 6fd6bf78b84315e12abcf8b6db6b1a40
Found device /dev/vdc1
Adding device /dev/vdc2 ... OK
Found node k8s3 on cluster 6fd6bf78b84315e12abcf8b6db6b1a40
Found device /dev/vdc1
Adding device /dev/vdc2 ... OK
Increasing cluster size
除了向現(xiàn)有節(jié)點(diǎn)添加新設(shè)備之外,還可以將新節(jié)點(diǎn)添加到集群中泉哈。與device一樣蛉幸,可以通過(guò)使用API,使用cli或修改拓?fù)湮募⑿鹿?jié)點(diǎn)添加到現(xiàn)有集群丛晦。
命令如下:
$ heketi-cli node add \
--zone=1 \
--cluster=6fd6bf78b84315e12abcf8b6db6b1a40 \
--management-host-name=k8s4 \
--storage-host-name=10.111.209.191
Node information:
Id: e0017385b683c10e4166492e78832d09
State: online
Cluster Id: 6fd6bf78b84315e12abcf8b6db6b1a40
Zone: 1
Management Hostname k8s4
Storage Hostname 10.111.209.191
$ heketi-cli device add \
--name=/dev/vdc1 \
--node=e0017385b683c10e4166492e78832d09
Device added successfully
$ heketi-cli device add \
--name=/dev/vdc2 \
--node=e0017385b683c10e4166492e78832d09
Device added successfully
更簡(jiǎn)單的方法是為拓?fù)湮募募砑有鹿?jié)點(diǎn)奕纫。添加新節(jié)點(diǎn)時(shí),必須在現(xiàn)有節(jié)點(diǎn)之后添加此節(jié)點(diǎn)信息烫沙,以便Heketi cli確定這個(gè)新節(jié)點(diǎn)應(yīng)該屬于哪個(gè)集群匹层。
命令如下:
$ heketi-cli topology load --json=/data/heketi/conf/topology.json
Found node k8s1 on cluster 6fd6bf78b84315e12abcf8b6db6b1a40
Found device /dev/vdc1
Found device /dev/vdc2
Found node k8s2 on cluster 6fd6bf78b84315e12abcf8b6db6b1a40
Found device /dev/vdc1
Found device /dev/vdc2
Found node k8s3 on cluster 6fd6bf78b84315e12abcf8b6db6b1a40
Found device /dev/vdc1
Found device /dev/vdc2
Creating node 192.168.10.105 ... ID: be0e8f7fba6ec1e5aa0337141f356013
Adding device /dev/vdc1 ... OK
Adding device /dev/vdc2 ... OK
Adding a new cluster
通過(guò)添加新的GlusterFS集群也可以增加存儲(chǔ)容量。與之前創(chuàng)建集群一樣锌蓄,可以直接使用API或者使用heketi-cli手動(dòng)添加群集升筏,節(jié)點(diǎn)和device,或創(chuàng)建另一個(gè)拓?fù)湮募?lái)定義將組成此集群的新節(jié)點(diǎn)和設(shè)備瘸爽。
容量縮容
Heketi也支持降低存儲(chǔ)容量仰冠。這可以通過(guò)刪除device,節(jié)點(diǎn)和集群來(lái)實(shí)現(xiàn)蝶糯⊙笾唬可以使用API或使用heketi-cli執(zhí)行這些更改。以下是如何從Heketi刪除沒(méi)有device被使用的命令:
$ heketi-cli topology info
Cluster Id: 6fe4dcffb9e077007db17f737ed999fe
Volumes:
Nodes:
Node Id: 61d019bb0f717e04ecddfefa5555bc41
State: online
Cluster Id: 6fe4dcffb9e077007db17f737ed999fe
Zone: 1
Management Hostname: gprfc053.o.internal
Storage Hostname: 172.18.10.53
Devices:
Id:e4805400ffa45d6da503da19b26baad6 Name:/dev/sdc State:online Size (GiB):279 Used (GiB):0 Free (GiB):279
Bricks:
Id:ecc3c65e4d22abf3980deba4ae90238c Name:/dev/sdd State:online Size (GiB):279 Used (GiB):0 Free (GiB):279
Bricks:
Node Id: e97d77d0191c26089376c78202ee2f20
State: online
Cluster Id: 6fe4dcffb9e077007db17f737ed999fe
Zone: 2
Management Hostname: gprfc054.o.internal
Storage Hostname: 172.18.10.54
Devices:
Id:3dc3b3f0dfd749e8dc4ee98ed2cc4141 Name:/dev/sdd State:online Size (GiB):279 Used (GiB):0 Free (GiB):279
Bricks:
Id:4122bdbbe28017944a44e42b06755b1c Name:/dev/sdc State:online Size (GiB):279 Used (GiB):0 Free (GiB):279
Bricks:
Id:b5333d93446565243f1a7413be45292a Name:/dev/sdb State:online Size (GiB):279 Used (GiB):0 Free (GiB):279
Bricks:
$
$ d=`heketi-cli topology info | grep Size | awk '{print $1}' | cut -d: -f 2`
$ for i in $d ; do
> heketi-cli device delete $i
> done
Device e4805400ffa45d6da503da19b26baad6 deleted
Device ecc3c65e4d22abf3980deba4ae90238c deleted
Device 3dc3b3f0dfd749e8dc4ee98ed2cc4141 deleted
Device 4122bdbbe28017944a44e42b06755b1c deleted
Device b5333d93446565243f1a7413be45292a deleted
$ heketi-cli node delete $node1
Node 61d019bb0f717e04ecddfefa5555bc41 deleted
$ heketi-cli node delete $node2
Node e97d77d0191c26089376c78202ee2f20 deleted
$ heketi-cli cluster delete $cluster
Cluster 6fe4dcffb9e077007db17f737ed999fe deleted