使用Heketi工具管理GlusterFS集群

使用Heketi管理GlusterFS Cluster

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# 创建集群
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true cluster create {"id":"0f0e5d914e3d9a17bef670dd6e295512","nodes":[],"volumes":[]}

# 查看集群
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true cluster list {"clusters":["0f0e5d914e3d9a17bef670dd6e295512"]}

# 添加节点
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true node add --cluster=0f0e5d914e3d9a17bef670dd6e295512 --management-host-name=192.168.86.135 --storage-host-name=192.168.86.135 --zone=1
{"zone":1,"hostnames":{"manage":["192.168.86.135"],"storage":["192.168.86.135"]},"cluster":"0f0e5d914e3d9a17bef670dd6e295512","i

[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true node add --cluster=0f0e5d914e3d9a17bef670dd6e295512 --management-host-name=192.168.86.136 --storage-host-name=192.168.86.136 --zone=1
{"zone":1,"hostnames":{"manage":["192.168.86.136"],"storage":["192.168.86.136"]},"cluster":"0f0e5d914e3d9a17bef670dd6e295512","i

[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true node add --cluster=0f0e5d914e3d9a17bef670dd6e295512 --management-host-name=192.168.86.137 --storage-host-name=192.168.86.137 --zone=1
{"zone":1,"hostnames":{"manage":["192.168.86.137"],"storage":["192.168.86.137"]},"cluster":"0f0e5d914e3d9a17bef670dd6e295512","i

# 查看节点
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true node list Id:a2c00d537210d42d68679bfa240db8b5 Cluster:0f0e5d914e3d9a17bef670dd6e295512
Id:a73f8bdd464f02a4c7e0dd30c4ed5afa Cluster:0f0e5d914e3d9a17bef670dd6e295512
Id:aba2f2cfe93c0f3e4164aa05b8d6ddb2 Cluster:0f0e5d914e3d9a17bef670dd6e295512

# 给节点添加设备(裸硬盘)
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true device add --name=/dev/sdb --node=a2c00d537210d42d68679bfa240db8b5
Device added successfully
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true device add --name=/dev/sdb --node=a73f8bdd464f02a4c7e0dd30c4ed5afa
Device added successfully
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 --json=true device add --name=/dev/sdb --node=aba2f2cfe93c0f3e4164aa05b8d6ddb2
Device added successfully

# 创建volume
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 volume create --size=10 --replica=2
Name: vol_d1fd574462c162f42fb61ef55c3e4e6e
Size: 10
Volume Id: d1fd574462c162f42fb61ef55c3e4e6e
Cluster Id: 0f0e5d914e3d9a17bef670dd6e295512
Mount: 192.168.86.135:vol_d1fd574462c162f42fb61ef55c3e4e6e
Mount Options: backup-volfile-servers=192.168.86.136,192.168.86.137
Durability Type: replicate
Distributed+Replica: 2

# 查看volume
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 volume list Id:d1fd574462c162f42fb61ef55c3e4e6e Cluster:0f0e5d914e3d9a17bef670dd6e295512 Name:vol_d1fd574462c162f42fb61ef55c3e4e6e
# 删除volume
[root@server07 ~]# heketi-cli --server http://192.168.86.135:8080 --user admin --secret 12345678 volume delete d1fd574462c162f42fb61ef55c3e4e6e
Volume d1fd574462c162f42fb61ef55c3e4e6e deleted

# 使用topology.json初始化GlusterFS Cluster
cat <<EOF > /etc/heketi/topology.json
{
"clusters": [
{
"nodes": [
{
"node": {
"hostnames": {
"manage": [
"server07"
],
"storage": [
"172.16.170.134"
]
},
"zone": 1
},
"devices": [
"/dev/sdb"
]
},
{
"node": {
"hostnames": {
"manage": [
"server08"
],
"storage": [
"172.16.170.135"
]
},
"zone": 1
},
"devices": [
"/dev/sdb"
]
},
{
"node": {
"hostnames": {
"manage": [
"server09"
],
"storage": [
"172.16.170.136"
]
},
"zone": 1
},
"devices": [
"/dev/sdb"
]
}
]
}
]
}
EOF

heketi-cli --user admin --secret 12345678 topology load --json=/etc/heketi/topology.json
Creating cluster ... ID: 4e01ca44d2e6f0077ee3abe9c6783183
Allowing file volumes on cluster.
Allowing block volumes on cluster.
Creating node server07 ... ID: 2e8b83add06cde8713d56ecb7d424033
Adding device /dev/sdb ... OK
Creating node server08 ... ID: 56a23b0579e7f79511843e046e69008f
Adding device /dev/sdb ... OK
Creating node server09 ... ID: 9fb13189ba78ef302046fe4414f633bf
Adding device /dev/sdb ... OK

heketi-cli --user admin --secret 12345678 topology info

Cluster Id: 4e01ca44d2e6f0077ee3abe9c6783183

File: true
Block: true

Volumes:

Nodes:

Node Id: 2e8b83add06cde8713d56ecb7d424033
State: online
Cluster Id: 4e01ca44d2e6f0077ee3abe9c6783183
Zone: 1
Management Hostnames: server07
Storage Hostnames: 172.16.170.134
Devices:
Id:4995671aaef70cb1f640d0f411e94d2f Name:/dev/sdb State:online Size (GiB):19 Used (GiB):0 Free (GiB):19
Bricks:

Node Id: 56a23b0579e7f79511843e046e69008f
State: online
Cluster Id: 4e01ca44d2e6f0077ee3abe9c6783183
Zone: 1
Management Hostnames: server08
Storage Hostnames: 172.16.170.135
Devices:
Id:c4a56208419516d4fbc437d9dc3b265e Name:/dev/sdb State:online Size (GiB):19 Used (GiB):0 Free (GiB):19
Bricks:

Node Id: 9fb13189ba78ef302046fe4414f633bf
State: online
Cluster Id: 4e01ca44d2e6f0077ee3abe9c6783183
Zone: 1
Management Hostnames: server09
Storage Hostnames: 172.16.170.136
Devices:
Id:be2a9558f0634233be72f0c55d051898 Name:/dev/sdb State:online Size (GiB):19 Used (GiB):0 Free (GiB):19
Bricks: