Проект

Общее

Профиль

SETUP » История » Версия 11

Dmitry Chernyak, 08.11.2012 02:16

1 1 Dmitry Chernyak
h1. SETUP
2 1 Dmitry Chernyak
3 1 Dmitry Chernyak
{{toc}}
4 1 Dmitry Chernyak
5 1 Dmitry Chernyak
Ensure both nodes are up.
6 1 Dmitry Chernyak
7 1 Dmitry Chernyak
If you planning to use the secondary network for SAN and DRBD synchronization, you
8 1 Dmitry Chernyak
should configure secondary IP interfaces manually on both nodes at this time.
9 1 Dmitry Chernyak
10 11 Dmitry Chernyak
Log in to the first node via ssh. Due to lack of DNS there may be a minute timeout
11 11 Dmitry Chernyak
before the server anwers yoy with the password prompt.
12 1 Dmitry Chernyak
13 2 Владимир Ипатов
h2. NETWORK CONFIGURATION
14 2 Владимир Ипатов
15 2 Владимир Ипатов
Network configuration may be highly various.
16 11 Dmitry Chernyak
Here we describe several usual schemas.
17 2 Владимир Ипатов
18 7 Владимир Ипатов
h3. Basic schema - one ethernet to all.
19 2 Владимир Ипатов
20 11 Dmitry Chernyak
One ethernet, one subnet, internet connection provided by external (not in claster) router.
21 1 Dmitry Chernyak
By default installer create bridge named xen-br0. You can customize parameters by editing /etc/network/interfaces.
22 7 Владимир Ипатов
In this case you must have nodes connected to gigabit ethernet switch.
23 3 Владимир Ипатов
By default it looks like:
24 3 Владимир Ипатов
<pre>
25 3 Владимир Ипатов
auto xen-br0
26 3 Владимир Ипатов
iface xen-br0 inet static
27 3 Владимир Ипатов
        address 192.168.5.88
28 3 Владимир Ипатов
        netmask 255.255.255.0
29 3 Владимир Ипатов
        network 192.168.5.0
30 3 Владимир Ипатов
        broadcast 192.168.5.255
31 3 Владимир Ипатов
        gateway 192.168.5.1
32 3 Владимир Ипатов
        bridge_ports eth0
33 3 Владимир Ипатов
        bridge_stp off
34 3 Владимир Ипатов
        bridge_fd 0
35 1 Dmitry Chernyak
#       up ifconfig eth0 mtu 9000
36 1 Dmitry Chernyak
#       up ifconfig xen-br0 mtu 9000
37 3 Владимир Ипатов
</pre>
38 1 Dmitry Chernyak
Important parameters besides ipv4 settings is:
39 11 Dmitry Chernyak
<pre>
40 11 Dmitry Chernyak
bridge_ports eth0
41 11 Dmitry Chernyak
</pre>
42 1 Dmitry Chernyak
43 11 Dmitry Chernyak
- means that physical interface eth0 enslaved to this bridge.
44 11 Dmitry Chernyak
45 11 Dmitry Chernyak
<pre>
46 1 Dmitry Chernyak
up ifconfig eth0 mtu 9000
47 11 Dmitry Chernyak
up ifconfig xen-br0 mtu 9000
48 11 Dmitry Chernyak
</pre>
49 11 Dmitry Chernyak
50 11 Dmitry Chernyak
- setting jumbo frame on bridge for more network speed and less cpu utilization.
51 3 Владимир Ипатов
It will be actual on interface where drbd link will be.
52 3 Владимир Ипатов
However, setting mtu higher than 1500 will cause problems with any network equipment that
53 1 Dmitry Chernyak
doesn't support jumbo frames. That's the reason because it option commented out by default.
54 3 Владимир Ипатов
55 7 Владимир Ипатов
h3. Default schema - two ethernets, one for interlink(ganeti interoperation+drbd link) and one for lan.
56 1 Dmitry Chernyak
57 11 Dmitry Chernyak
This schema suits most cases. It doesn't required a gigabit switch, provide good performance and reliability.
58 11 Dmitry Chernyak
Two gigabit network interfaces on the nodes are connected directly or via a gigabit switch (if you want more than two nodes in the cluster).
59 7 Владимир Ипатов
Other interfaces connected to lan. Routing, firewalling, dhcp, dns in lan performed by external router or server.
60 7 Владимир Ипатов
Lan failure doesn't affect cluster in this setup.
61 8 Владимир Ипатов
This is /etc/network/interfaces file for this setup:
62 8 Владимир Ипатов
<pre>auto xen-br0
63 8 Владимир Ипатов
iface xen-br0 inet static
64 8 Владимир Ипатов
	address 192.168.236.1
65 8 Владимир Ипатов
	netmask 255.255.255.0
66 8 Владимир Ипатов
	network 192.168.236.0
67 8 Владимир Ипатов
	broadcast 192.168.236.255
68 8 Владимир Ипатов
	gateway 192.168.236.15
69 8 Владимир Ипатов
        bridge_ports eth0
70 1 Dmitry Chernyak
        bridge_stp off
71 1 Dmitry Chernyak
        bridge_fd 0
72 1 Dmitry Chernyak
#	up ifconfig eth0 mtu 9000
73 1 Dmitry Chernyak
#	up ifconfig xen-br0 mtu 9000
74 8 Владимир Ипатов
75 7 Владимир Ипатов
auto xen-lan
76 8 Владимир Ипатов
iface xen-lan inet static
77 8 Владимир Ипатов
	address 192.168.5.55
78 8 Владимир Ипатов
	netmask 255.255.255.0
79 8 Владимир Ипатов
	network 192.168.5.0
80 8 Владимир Ипатов
	broadcast 192.168.5.255
81 8 Владимир Ипатов
	bridge_ports eth1
82 8 Владимир Ипатов
	bridge_stp off
83 8 Владимир Ипатов
	bridge_fd 0
84 8 Владимир Ипатов
</pre>
85 11 Dmitry Chernyak
86 11 Dmitry Chernyak
xen-br0 used by ganeti interoperation and drbd link, it was configured by the installer.
87 11 Dmitry Chernyak
Also the dns server and the gateway was configured by the installer - it will be our service instance(sci) address.
88 11 Dmitry Chernyak
xen-lan used by lan connection, its configuration must be added by hands.
89 8 Владимир Ипатов
In this network configuration you must fill these variables in sci.conf:
90 9 Владимир Ипатов
NODE1_IP - already configured by installer.
91 9 Владимир Ипатов
NODE1_NAME - already configured by installer.
92 9 Владимир Ипатов
NODE2_IP - set interlink ip address of second node. e.g. 192.168.236.2
93 9 Владимир Ипатов
NODE2_NAME - set second node name. e.g. gnt2
94 9 Владимир Ипатов
NODE1_LAN_IP - lan ip for first node. It will be available by dns name $NODE1_NAME-lan. 192.168.5.55
95 9 Владимир Ипатов
NODE2_LAN_IP - lan ip for first node. It will be available by dns name $NODE1_NAME-lan. e.g. 192.168.5.58
96 9 Владимир Ипатов
CLUSTER_IP - cluster address in lan. Must not match any exist host address in lan. 192.168.5.35
97 9 Владимир Ипатов
CLUSTER_NAME - cluster name in lan. In will be available by dns name $CLUSTER_NAME.
98 7 Владимир Ипатов
99 7 Владимир Ипатов
h3. Mupltiple bridges with routing, firewalling and wan access.
100 7 Владимир Ипатов
101 3 Владимир Ипатов
Here is a bit more complicated network setup.
102 3 Владимир Ипатов
In this setup we have, for example, two private netwokrs and wan by ethernet. All routing and firewalling
103 7 Владимир Ипатов
performed by separate firewall instance in our cluster. This setup fit when you don't have expensive hardware routers and firewalls.
104 3 Владимир Ипатов
This is /etc/network/interfaces file in this setup:
105 3 Владимир Ипатов
<pre>
106 5 Владимир Ипатов
auto lan
107 5 Владимир Ипатов
iface lan inet static
108 5 Владимир Ипатов
	address 192.168.21.10
109 5 Владимир Ипатов
	netmask 255.255.255.0
110 1 Dmitry Chernyak
        bridge_ports eth0
111 1 Dmitry Chernyak
        bridge_stp off
112 1 Dmitry Chernyak
        bridge_fd 0
113 5 Владимир Ипатов
114 5 Владимир Ипатов
auto dmz
115 5 Владимир Ипатов
iface dmz inet static
116 5 Владимир Ипатов
	address 192.168.20.10
117 5 Владимир Ипатов
	netmask 255.255.255.0
118 5 Владимир Ипатов
	gateway 192.168.20.1
119 5 Владимир Ипатов
        bridge_ports eth1
120 5 Владимир Ипатов
        bridge_stp off
121 5 Владимир Ипатов
        bridge_fd 0
122 5 Владимир Ипатов
        up ifconfig eth1 mtu 9000
123 5 Владимир Ипатов
        up ifconfig dmz mtu 9000
124 5 Владимир Ипатов
125 5 Владимир Ипатов
auto wan1
126 5 Владимир Ипатов
iface wan1 inet manual
127 5 Владимир Ипатов
        bridge_ports eth2
128 5 Владимир Ипатов
        bridge_stp off
129 5 Владимир Ипатов
        bridge_fd 0
130 1 Dmitry Chernyak
</pre>
131 5 Владимир Ипатов
In this example we have separate lan interfaces, dmz interface(it isn't actually dmz,
132 5 Владимир Ипатов
it just named this) and wan interface. dmz interface - ganeti master dev and drbd link
133 5 Владимир Ипатов
interfase, so there is mtu 9000.
134 6 Владимир Ипатов
Also in this example you must edit MASTER_NETDEV and LINK_NETDEV in /etc/sci/sci.conf from default xen-br0 to dmz.
135 5 Владимир Ипатов
There is no address in wan for hypervisor, although we recommend you to get subnet from
136 5 Владимир Ипатов
your ISP in order to assign IP addresses to nodes to management it even if router instance
137 5 Владимир Ипатов
is down.
138 5 Владимир Ипатов
139 5 Владимир Ипатов
Here is an example /etc/network/interfaces in router instance:
140 5 Владимир Ипатов
<pre>
141 5 Владимир Ипатов
auto eth0
142 5 Владимир Ипатов
iface eth0 inet static
143 5 Владимир Ипатов
   address 192.168.20.1
144 5 Владимир Ипатов
   netmask 255.255.255.0
145 5 Владимир Ипатов
146 5 Владимир Ипатов
auto eth1
147 5 Владимир Ипатов
iface eth1 inet static
148 5 Владимир Ипатов
   address 192.168.21.1
149 5 Владимир Ипатов
   netmask 255.255.255.0
150 5 Владимир Ипатов
151 5 Владимир Ипатов
auto eth2
152 5 Владимир Ипатов
iface eth2 inet static
153 5 Владимир Ипатов
   address 1.1.1.2
154 5 Владимир Ипатов
   netmask 255.255.255.0
155 1 Dmitry Chernyak
   address 1.1.1.1
156 1 Dmitry Chernyak
</pre>
157 1 Dmitry Chernyak
Where eth0 linked to bridge dmz, eth1 linked to lan, eth2 linked to wan.
158 7 Владимир Ипатов
159 7 Владимир Ипатов
h3. Datacenter schema - separate interfaces for lan, ganeti interoperation, drbd link.
160 10 Владимир Ипатов
161 7 Владимир Ипатов
If you have powerful networking infrastructure
162 5 Владимир Ипатов
163 5 Владимир Ипатов
h3. VLAN schema
164 5 Владимир Ипатов
165 5 Владимир Ипатов
If you have managed switches, you can set networking with VLANs.
166 5 Владимир Ипатов
You should add something like this for each VLAN:
167 5 Владимир Ипатов
<pre>
168 5 Владимир Ипатов
auto eth0.55
169 5 Владимир Ипатов
iface eth0.55 inet manual
170 5 Владимир Ипатов
        up ifconfig eth0.55 up
171 5 Владимир Ипатов
172 5 Владимир Ипатов
auto bridge-example-vlan
173 5 Владимир Ипатов
iface bridge-example-vlan inet manual
174 5 Владимир Ипатов
        up brctl addbr bridge-example-vlan
175 5 Владимир Ипатов
        up brctl addif bridge-example-vlan eth0.55
176 5 Владимир Ипатов
        up brctl stp bridge-example-vlan off
177 5 Владимир Ипатов
        up ifconfig bridge-example-vlan up
178 5 Владимир Ипатов
        down ifconfig bridge-example-vlan down
179 5 Владимир Ипатов
        down brctl delbr bridge-example-vlan
180 5 Владимир Ипатов
</pre>
181 5 Владимир Ипатов
Where 55 - VLAN number.
182 5 Владимир Ипатов
In this example node don't have an ip address in this VLAN, although you could
183 5 Владимир Ипатов
assign an ip to bridge just like standard bridge.
184 5 Владимир Ипатов
185 5 Владимир Ипатов
Alternative schema is:
186 5 Владимир Ипатов
<pre>
187 5 Владимир Ипатов
auto vlan55
188 5 Владимир Ипатов
iface vlan55 inet manual
189 5 Владимир Ипатов
   vlan_raw_device eth0
190 5 Владимир Ипатов
191 5 Владимир Ипатов
auto bridge-example-vlan
192 5 Владимир Ипатов
iface bridge-example-vlan inet manual
193 5 Владимир Ипатов
           bridge_ports vlan55
194 5 Владимир Ипатов
        bridge_stp off
195 5 Владимир Ипатов
        bridge_fd 0
196 2 Владимир Ипатов
</pre>
197 1 Dmitry Chernyak
It do the same, but in another way.
198 1 Dmitry Chernyak
199 1 Dmitry Chernyak
h2. DEFINING ENVIRONMENT
200 1 Dmitry Chernyak
201 1 Dmitry Chernyak
Edit @/etc/sci/sci.conf@
202 1 Dmitry Chernyak
203 8 Владимир Ипатов
Most of values rely of your network setup. In section network setup it was described for most cases.
204 8 Владимир Ипатов
205 8 Владимир Ипатов
Here is additional notes about sci.conf configuring:
206 8 Владимир Ипатов
207 1 Dmitry Chernyak
* You should specify node1 and node2 data as you have installed them.
208 1 Dmitry Chernyak
*NOTE*: You can setup the cluster even with one node. In this case just leave NODE2_
209 1 Dmitry Chernyak
lines as is. In fact this is a dangerous setup, so you will be warned about this duging
210 1 Dmitry Chernyak
the procedures.
211 1 Dmitry Chernyak
212 1 Dmitry Chernyak
* You should specify the cluster's name and IP.
213 1 Dmitry Chernyak
214 1 Dmitry Chernyak
* NODE#_SAN_IP should be specified on both nodes or none.
215 1 Dmitry Chernyak
216 8 Владимир Ипатов
* NODE#_LAN_IP should be specified on both nodes or none.
217 8 Владимир Ипатов
218 1 Dmitry Chernyak
* If you haven't Internet uplink or have a local package mirrors, you should correct
219 1 Dmitry Chernyak
APT_ - settings.
220 1 Dmitry Chernyak
221 6 Владимир Ипатов
* If you need to uplink to the DNS hierarchy other than root hint zones, specify DNS_FORWARDERS
222 6 Владимир Ипатов
(note trailing ';').
223 1 Dmitry Chernyak
224 8 Владимир Ипатов
* MASTER_NETDEV - master interface name for cluster address. Auto-detected by default.
225 6 Владимир Ипатов
226 8 Владимир Ипатов
* LAN_NETDEV - Network interface to bind to virtual machies by default. Auto-detected by default.
227 6 Владимир Ипатов
228 6 Владимир Ипатов
* RESERVED_VOLS - list of volumes ignored by ganeti. Comma separated. You must specify vg for all volumes in this list.
229 6 Владимир Ипатов
230 1 Dmitry Chernyak
231 1 Dmitry Chernyak
h2. SETUP CLUSTER
232 1 Dmitry Chernyak
233 1 Dmitry Chernyak
Issue:
234 1 Dmitry Chernyak
235 1 Dmitry Chernyak
<pre>
236 1 Dmitry Chernyak
# sci-setup cluster
237 1 Dmitry Chernyak
</pre>
238 1 Dmitry Chernyak
239 1 Dmitry Chernyak
Check and confirm settings printed.
240 1 Dmitry Chernyak
241 1 Dmitry Chernyak
The process will go on.
242 1 Dmitry Chernyak
243 1 Dmitry Chernyak
Next you will be prompted to accept ssh key from node2 and for the root's password to node2.
244 1 Dmitry Chernyak
245 1 Dmitry Chernyak
On finish you will look something like this:
246 1 Dmitry Chernyak
247 1 Dmitry Chernyak
<pre>
248 1 Dmitry Chernyak
Verify
249 1 Dmitry Chernyak
Wed Jan 12 15:36:10 2011 * Verifying global settings
250 1 Dmitry Chernyak
Wed Jan 12 15:36:10 2011 * Gathering data (1 nodes)
251 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Verifying node status
252 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Verifying instance status
253 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Verifying orphan volumes
254 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Verifying orphan instances
255 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Verifying N+1 Memory redundancy
256 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Other Notes
257 1 Dmitry Chernyak
Wed Jan 12 15:36:11 2011 * Hooks Results
258 1 Dmitry Chernyak
Node                    DTotal  DFree MTotal MNode MFree Pinst Sinst
259 1 Dmitry Chernyak
gnt1.ganeti.example.org 100.0G 100.0G  1020M  379M  625M     0     0
260 1 Dmitry Chernyak
gnt2.ganeti.example.org 100.0G 100.0G  1020M  379M  625M     0     0
261 1 Dmitry Chernyak
If all is ok, proceed with /usr/local/sbin/sci-setup service
262 1 Dmitry Chernyak
</pre>
263 1 Dmitry Chernyak
264 1 Dmitry Chernyak
h2. SETUP SERVICE INSTANCE
265 1 Dmitry Chernyak
266 1 Dmitry Chernyak
The service instance is named 'sci' and have a few aliases.
267 1 Dmitry Chernyak
On setup, it's IP address is determined from @/etc/resolv.conf@ of your first node.
268 1 Dmitry Chernyak
This instance will be hardcoded in @/etc/hosts@ file of all cluster nodes and instances.
269 1 Dmitry Chernyak
270 1 Dmitry Chernyak
Issue:
271 1 Dmitry Chernyak
272 1 Dmitry Chernyak
<pre>
273 1 Dmitry Chernyak
# sci-setup service
274 1 Dmitry Chernyak
</pre>
275 1 Dmitry Chernyak
276 1 Dmitry Chernyak
You'll see the progress of DRBD syncing disks, then the message
277 1 Dmitry Chernyak
<pre>
278 1 Dmitry Chernyak
* running the instance OS create scripts...
279 1 Dmitry Chernyak
</pre>
280 1 Dmitry Chernyak
appears. The further may take a while. The process finishes with
281 1 Dmitry Chernyak
<pre>
282 1 Dmitry Chernyak
* starting instance...
283 1 Dmitry Chernyak
</pre>
284 1 Dmitry Chernyak
message.
285 1 Dmitry Chernyak
286 1 Dmitry Chernyak
Now you can log on to the sci instance using:
287 1 Dmitry Chernyak
288 1 Dmitry Chernyak
<pre>
289 1 Dmitry Chernyak
# gnt-instance console sci
290 1 Dmitry Chernyak
</pre>
291 1 Dmitry Chernyak
292 1 Dmitry Chernyak
Log in as root, the password is empty.
293 1 Dmitry Chernyak
*NOTE*: Due to empty password all remote connections to new instance is prohibited.
294 1 Dmitry Chernyak
You should change password and install @openssh-server@ package manually after
295 1 Dmitry Chernyak
successful bootstrap procedure.
296 1 Dmitry Chernyak
297 1 Dmitry Chernyak
h2. SERVICE INSTANCE BOOTSTRAP
298 1 Dmitry Chernyak
299 1 Dmitry Chernyak
The system will setup itself via puppet. This is the iterative process. You can monitor
300 1 Dmitry Chernyak
it by looking into @/var/log/daemon.log@. At start there is no @less@ command yet, so
301 1 Dmitry Chernyak
you can use @more@, @cat@, @tail@ or @tail -f@ until @less@ will be auto-installed.
302 1 Dmitry Chernyak
303 1 Dmitry Chernyak
By default the iterations are repeated in 20 minutes. To shorten the wait time you can
304 1 Dmitry Chernyak
issue
305 1 Dmitry Chernyak
306 1 Dmitry Chernyak
<pre>
307 1 Dmitry Chernyak
# /etc/init.d/puppet restart
308 1 Dmitry Chernyak
</pre>
309 1 Dmitry Chernyak
310 1 Dmitry Chernyak
and then look into @daemon.log@ how it finishes.
311 1 Dmitry Chernyak
312 1 Dmitry Chernyak
Repeat this a few times until puppet will do nothing in turn.
313 1 Dmitry Chernyak
314 1 Dmitry Chernyak
h2. PREPARING FOR NEW INSTANCES
315 1 Dmitry Chernyak
316 1 Dmitry Chernyak
New instances are created just by regular Ganeti commands such as:
317 1 Dmitry Chernyak
318 1 Dmitry Chernyak
<pre>
319 1 Dmitry Chernyak
gnt-instance add -t drbd -o debootstrap+default -s 10g -B memory=256m -n NODE1_NAME:NODE2_NAME INSTANCE_NAME
320 1 Dmitry Chernyak
</pre>
321 1 Dmitry Chernyak
322 1 Dmitry Chernyak
Altought, some tuning hooks are provided by SCI-CD project:
323 1 Dmitry Chernyak
# Each instance has installed @puppet@ for autoconfiguration and @openssh-client@ for file transfers etc.
324 1 Dmitry Chernyak
# The instance uses pygrub to boot kernel from /vmlinuz & Co on the innstance's own disk.
325 1 Dmitry Chernyak
# The instance's network interfaces may be set up automatically as described below.
326 1 Dmitry Chernyak
327 1 Dmitry Chernyak
h3. INSTANCE INTERFACE AUTOCONFIGURATION
328 1 Dmitry Chernyak
329 1 Dmitry Chernyak
If your instances may sit on several networks and you need static addressing in them, you should fulfill
330 1 Dmitry Chernyak
the file @/etc/ganeti/networks@ with all known networks you want to attach your instances.
331 1 Dmitry Chernyak
Each line in the file has format
332 1 Dmitry Chernyak
333 1 Dmitry Chernyak
|NETWORK|NETMASK|BROADCAST|GATEWAY|
334 1 Dmitry Chernyak
335 1 Dmitry Chernyak
Ganeti instance debootstrap hook looks in this file for the network, mathing the address of bootstraped
336 1 Dmitry Chernyak
instance and fulfill it's @/etc/network/interfaces@ accordingly.
337 1 Dmitry Chernyak
338 1 Dmitry Chernyak
*NOTE*: If you have only one default network, you shouldn't care because it's data are preinstalled.
339 1 Dmitry Chernyak
*NOTE*: networks file must be copied to all cluster nodes (not automated yet).
340 1 Dmitry Chernyak
341 1 Dmitry Chernyak
h2. SCI OPERATIONS
342 1 Dmitry Chernyak
343 1 Dmitry Chernyak
Read [[OPERATIONS]] next.