1 |
rane 07/09/28 02:22:17 |
2 |
|
3 |
Added: vserver-howto.xml |
4 |
Log: |
5 |
new translation by Piotr Miedzik (qermit), rev. 1.10 |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/proj/pl/vps/vserver-howto.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/pl/vps/vserver-howto.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/pl/vps/vserver-howto.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: vserver-howto.xml |
14 |
=================================================================== |
15 |
<?xml version='1.0' encoding="UTF-8"?> |
16 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/pl/vps/vserver-howto.xml,v 1.1 2007/09/28 02:22:16 rane Exp $ --> |
17 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
18 |
|
19 |
<guide link="/proj/pl/vps/vserver-howto.xml" lang="pl"> |
20 |
<title>Linux-VServer w Gentoo</title> |
21 |
<author title="Autor"> |
22 |
<mail link="hollow@g.o">Benedikt Boehm</mail> |
23 |
</author> |
24 |
<author title="Redakcja"> |
25 |
<mail link="fox2mike@g.o">Shyam Mani</mail> |
26 |
</author> |
27 |
<author title="Tłumaczenie"> |
28 |
Paweł Kwiatkowski |
29 |
</author> |
30 |
<author title="Tłumaczenie"> |
31 |
<mail link="miedzik_piotr@××.pl">Piotr Miedzik</mail> |
32 |
</author> |
33 |
|
34 |
<abstract> |
35 |
Opis instalacji wirtualnych serwerów przy użyciu technologii Linux-Vserver. |
36 |
</abstract> |
37 |
|
38 |
<!-- The content of this document is licensed under the CC-BY-SA license --> |
39 |
<!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
40 |
<license/> |
41 |
|
42 |
<version>1.10</version> |
43 |
<date>2007-03-26</date> |
44 |
|
45 |
<chapter> |
46 |
<title>Wprowadzenie</title> |
47 |
<section> |
48 |
<title>Koncepcja Linux-VServer</title> |
49 |
<body> |
50 |
|
51 |
<p> |
52 |
Linux-VServer pozwala na rozdzielenie przestrzeni użytkownika na jednostki, z |
53 |
których każda jest osobnym serwerem dla procesów, które są w niej zawarte. |
54 |
</p> |
55 |
|
56 |
</body> |
57 |
</section> |
58 |
<section> |
59 |
<title>Pojęcia użyte w tym przewodniku</title> |
60 |
<body> |
61 |
|
62 |
<table> |
63 |
<tr> |
64 |
<th>Termin</th> |
65 |
<th>Opis</th> |
66 |
</tr> |
67 |
<tr> |
68 |
<th>Linux-VServer, VServer</th> |
69 |
<ti> |
70 |
Linux-VSerwer to oficjalna nazwa projektu i jest używana w tym przewodniku |
71 |
dokładnie w tym znaczeniu |
72 |
</ti> |
73 |
</tr> |
74 |
<tr> |
75 |
<th>vserwer, wirtualny serwer, gość</th> |
76 |
<ti> |
77 |
Wszystkie te terminy odnoszą się do pojedynczej instancji serwera (tj. |
78 |
jednego serwera wirtualnego) |
79 |
</ti> |
80 |
</tr> |
81 |
<tr> |
82 |
<th>komputer host, host</th> |
83 |
<ti> |
84 |
Komputer, na którym zainstalowany jest Gentoo Linux i na którym będą |
85 |
znajdować się wszystkie wirtualne serwery |
86 |
</ti> |
87 |
</tr> |
88 |
<tr> |
89 |
<th>util-vserver</th> |
90 |
<ti> |
91 |
Pakiet <c>util-vserver</c> zawiera wszystkie programy potrzebne do |
92 |
zarządzania serwerami wirtualnymi |
93 |
</ti> |
94 |
</tr> |
95 |
</table> |
96 |
|
97 |
</body> |
98 |
</section> |
99 |
</chapter> |
100 |
|
101 |
<chapter> |
102 |
<title>Konfiguracja hosta</title> |
103 |
<section> |
104 |
<title>Instalacja jądra wspierającego VServer</title> |
105 |
<body> |
106 |
|
107 |
<pre caption="Instalacja vserver-sources"> |
108 |
# <i>emerge vserver-sources</i> |
109 |
</pre> |
110 |
|
111 |
<p> |
112 |
Po instalacji źródeł vserver-sources należy je skonfigurować przy użyciu <c>make |
113 |
menuconfig</c>. Poniżej znajduje się standardowa konfiguracja dla wersji 2.1.1 |
114 |
oraz wyższych. W wersjach 2.0.x niektóre opcje konfiguracji mogą być |
115 |
niedostępne. |
116 |
</p> |
117 |
|
118 |
<pre caption="Konfiguracja vserver-sources"> |
119 |
# <i>cd /usr/src/linux-<WERSJA_JĄDRA>-vserver-<WERSJA_VSERVER></i> |
120 |
# <i>make menuconfig</i> |
121 |
|
122 |
Linux VServer ---> |
123 |
<comment>(Nie zaznaczamy opcji 'legacy')</comment> |
124 |
[ ] Enable Legacy Kernel API |
125 |
[ ] Enable Legacy Networking Kernel API |
126 |
<comment>(Warto przeczytać pomoc dla tych opcji)</comment> |
127 |
[ ] Remap Source IP Address |
128 |
[*] Enable COW Immutable Link Breaking |
129 |
[ ] Enable Virtualized Guest Time |
130 |
[*] Enable Proc Security |
131 |
[*] Enable Hard CPU Limits |
132 |
[*] Avoid idle CPUs by skipping Time |
133 |
[*] Limit the IDLE task |
134 |
Persistent Inode Tagging (UID24/GID24) ---> |
135 |
[ ] Tag NFSD User Auth and Files |
136 |
[*] Enable Inode Tag Propagation |
137 |
[*] Honor Privacy Aspects of Guests |
138 |
[ ] VServer Debugging Code |
139 |
</pre> |
140 |
|
141 |
<note> |
142 |
Jeśli korzysta się z reiserfs jako systemu plików, na którym będą przechowywane |
143 |
obrazy, należy w jądrze uaktywnić opcję "Extended attributes for reiserfs" czyli |
144 |
rozszerzone funkcje reiserfs oraz dodać opcję <c>attrs</c> do pliku |
145 |
<path>/etc/fstab</path>. |
146 |
</note> |
147 |
|
148 |
<pre caption="Konfiguracja opcji reiserfs"> |
149 |
File systems ---> |
150 |
<*> Reiserfs support |
151 |
[*] ReiserFS extended attributes |
152 |
</pre> |
153 |
|
154 |
<pre caption="Przykład wpisu w fstab z atrybutami rozszerzonymi"> |
155 |
/dev/hdb1 /vservers reiserfs noatime,attrs 0 0 |
156 |
</pre> |
157 |
|
158 |
<p> |
159 |
Po zbudowaniu jądra należy uaktualnić konfigurację programu ładującego, a |
160 |
następnie ponownie uruchomić system i sprawdzić czy startuje poprawnie. |
161 |
</p> |
162 |
|
163 |
<pre caption="Instalacja jądra"> |
164 |
<comment>(Budowanie jądra)</comment> |
165 |
# <i>make</i> |
166 |
<comment>(Instalacja)</comment> |
167 |
# <i>make modules_install</i> |
168 |
# <i>cp arch/<arch>/boot/bzImage /boot/kernel-<WERSJA_JĄDRA>-vserver-<WERSJA_VSERVER></i> |
169 |
<comment>(Zmiana konfiguracji bootloadera w razie potrzeby i restart)</comment> |
170 |
# <i>reboot</i> |
171 |
</pre> |
172 |
|
173 |
</body> |
174 |
</section> |
175 |
<section> |
176 |
<title>Konfiguracja na komputerze host</title> |
177 |
<body> |
178 |
|
179 |
<p> |
180 |
Aby zarządzać serwerami wirtualnymi, należy zainstalować pakiet util-vserwer, |
181 |
który zawiera wszystkie niezbędne programy. |
182 |
</p> |
183 |
|
184 |
<pre caption="Instalacja util-vserver"> |
185 |
# <i>emerge >=sys-cluster/util-vserver-0.30.212</i> |
186 |
</pre> |
187 |
|
188 |
<p> |
189 |
W celu zapewnienia odpowiednich praw dostępu do systemu plików |
190 |
<path>/proc</path>, po każdym ponownym uruchomieniu komputera trzeba będzie |
191 |
wykonać polecenie <c>vprocunhide</c>. Aby to zautomatyzować, należy dodać |
192 |
skrypty vservera do domyślnego poziomu uruchamiania. |
193 |
</p> |
194 |
|
195 |
<pre caption="Skrypty startowe util-vserver"> |
196 |
# <i>rc-update add vprocunhide default</i> |
197 |
# <i>/etc/init.d/vprocunhide start</i> |
198 |
# <i>rc-update add util-vserver default</i> |
199 |
# <i>/etc/init.d/util-vserver start</i> |
200 |
</pre> |
201 |
|
202 |
</body> |
203 |
</section> |
204 |
</chapter> |
205 |
|
206 |
<chapter> |
207 |
<title>Tworzenie szkieletu</title> |
208 |
<section> |
209 |
<title>Pobranie gotowych stage3/4</title> |
210 |
<body> |
211 |
|
212 |
<p> |
213 |
Wiele poleceń związanych ze sprzętem jest niedostępnych wewnątrz wirtualnego |
214 |
serwera. Dlatego kiedyś powstała specjalna, poprawiona wersja pakietu baselayout |
215 |
o nazwie baselayout-vserver. Obecnie, konkretnie od wersji |
216 |
baselayout-1.13.0_alpha12, wszystkie potrzebne zmiany zostały wprowadzone do |
217 |
standardowego baselayout, a co za tym idzie nie są już potrzebne osobne pliki |
218 |
stage, profile ani osobny pakiet baselayout. Jedynym minusem jest to, że |
219 |
baselayout-1.13 został dodany do stage będącego dopiero w wersji alpha i nie ma |
220 |
możliwości pobrania go z serwerów lustrzanych. |
221 |
</p> |
222 |
|
223 |
<p> |
224 |
Gdy baselayout-1.13 zostanie ustabilizowany, będzie można używać plików stage3/4 |
225 |
z jednego z <uri link="/main/en/mirrors.xml">serwerów lustrzanych</uri>. Zanim |
226 |
jednak to się stanie, wciąż trzeba pobierać stage3/4 z <uri |
227 |
link="http://people.linux-vserver.org/~hollow/stages/">tego miejsca</uri>. W |
228 |
związku z tym, że stage3/4 zawiera kompletne drzewo plików, można użyć metody |
229 |
budowania z szablonów. Jednakże ta metoda jest dostępna dopiero od |
230 |
util-vserver-0.30.213_rc5, należy więc sprawdzić zainstalowaną wersję. |
231 |
</p> |
232 |
|
233 |
<p> |
234 |
Należy wybrać identyfikator kontekstowy dla vserwera (odradzamy używanie |
235 |
dynamicznych identyfikatorów) oraz potrzebne informacje o urządzeniu sieciowym |
236 |
(w tym przykładzie eth0 zostało skonfigurowane jako 192.168.1.253/24, a |
237 |
identyfikator jest odpowiedni dla ostatnich dwóch części adresu IP serwera |
238 |
wirtualnego). |
239 |
</p> |
240 |
|
241 |
<note> |
242 |
Identyfikator powinien zawierać się w przedziale 1-49152. |
243 |
</note> |
244 |
|
245 |
</body> |
246 |
</section> |
247 |
<section> |
248 |
<title>Metoda budowy z szablonów</title> |
249 |
<body> |
250 |
|
251 |
<p> |
252 |
Przez długi czas zwykły styl uruchamiania był jedynym dostępnym. Na każdym z |
253 |
gości był uruchamiany osobny proces init, tak jak na każdym innym uniksowym |
254 |
systemie. Takie podejście miało jednak kilka wad: |
255 |
</p> |
256 |
|
257 |
<ul> |
258 |
<li> |
259 |
Nie było możliwości przejrzenia informacji dotyczących uruchamiania skryptów |
260 |
init/rc |
261 |
</li> |
262 |
<li> |
263 |
Marnowały się zasoby dla każdego procesu init w każdym wirtualnym serwerze |
264 |
</li> |
265 |
<li>Pojawiały się denerwujące konflikty o plik <path>/etc/inittab</path></li> |
266 |
</ul> |
267 |
|
268 |
<p> |
269 |
Z tego powodu wielu użytkowników prosiło o ponowną implementację systemu |
270 |
uruchamiania z Gentoo, która została zarzucona z powodu konieczności dodawania |
271 |
ogromnej liczby poprawek działających mniej lub bardziej sprawnie oraz dużych |
272 |
modyfikacji w baselayout. Jednak od wersji util-vserver-0.30.212 sposób |
273 |
uruchamiania typowy dla Gentoo został ponownie zaimplementowany i w przyszłości |
274 |
znów stanie się domyślną opcją. |
275 |
</p> |
276 |
|
277 |
<note> |
278 |
Użytkownicy, którzy nie chcą korzystać z osobnych procesów init dla każdego |
279 |
gościa lub tacy, którzy po prostu nie wiedzą co wybrać, powinni zaznaczyć sposób |
280 |
uruchamiania typowy dla Gentoo. |
281 |
</note> |
282 |
|
283 |
<pre caption="Rozpoczęcie instalacji stage3"> |
284 |
# <i>vserver myguest build \</i> |
285 |
<i>--context 1253 \</i> |
286 |
<i>--hostname gentoo \</i> |
287 |
<i>--interface eth0:192.168.1.253/24 \</i> |
288 |
<i>--initstyle gentoo \</i> <comment>(Sposób uruchamiania, można go zmienić jeśli zachodzi taka potrzeba)</comment> |
289 |
<i>-m template -- \</i> |
290 |
<i> -d gentoo \</i> |
291 |
<i> -t /path/to/stage4-<arch>-<version>.tar.bz2</i> |
292 |
</pre> |
293 |
|
294 |
<note> |
295 |
Następnie należy odpowiednio skonfigurować sieć poprzez zmianę plików |
296 |
<path>/etc/conf.d/hostname</path>, <path>/etc/conf.d/domainname</path> oraz |
297 |
<path>/etc/hosts</path>. Należy to zrobić na każdym gościu. Szczegóły |
298 |
konfiguracji są opisane w <uri |
299 |
link="/doc/pl/handbook/handbook-x86.xml?part=1&chap=8#doc_chap2_sect1"> |
300 |
rozdziale 8.b.1</uri> oraz <uri |
301 |
link="/doc/pl/handbook/handbook-x86.xml?part=1&chap=8#doc_chap2_sect4"> |
302 |
rozdziale 8.b.4</uri> Podręcznika Gentoo. Pozostała część konfiguracji sieci dla |
303 |
wirtualnych serwerów zostanie przeprowadzona na komputerze host. |
304 |
</note> |
305 |
|
306 |
<p> |
307 |
Teraz można sprawdzić działanie serwera wirtualnego używając poleceń podanych |
308 |
poniżej. |
309 |
</p> |
310 |
|
311 |
<pre caption="Testowanie serwera wirtualnego"> |
312 |
# <i>vserver myguest start</i> |
313 |
|
314 |
|
315 |
Gentoo/Linux 1.13.0_alpha12; http://www.gentoo.org/ |
316 |
Copyright 1999-2007 Gentoo Foundation; Distributed under the GPLv2 |
317 |
|
318 |
Press I to enter interactive boot mode |
319 |
|
320 |
* Using existing device nodes in /dev [ ok ] |
321 |
* root filesystem is mounted read-write - skipping |
322 |
* Checking all filesystems [ ok ] |
323 |
* Mounting local filesystems [ ok ] |
324 |
* Activating (possible) swap [ ok ] |
325 |
* Setting hostname to myguest [ ok ] |
326 |
* Updating environment [ ok ] |
327 |
* Cleaning /var/lock, /var/run [ ok ] |
328 |
* Cleaning /tmp directory [ ok ] |
329 |
* Initializing random number generator [ ok ] |
330 |
* Setting system clock using the hardware clock [VPS] [ ok ] |
331 |
* Starting syslog-ng [ ok ] |
332 |
* Starting vixie-cron [ ok ] |
333 |
* Starting local [ ok ] |
334 |
# <i>vserver-stat</i> |
335 |
CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME |
336 |
0 90 1.4G 153.4K 14m00s11 6m45s17 2h59m59 root server |
337 |
1252 2 3M 286 0m00s45 0m00s42 0m02s91 myguest |
338 |
# <i>vserver myguest enter</i> |
339 |
# <i>ps ax</i> |
340 |
PID TTY STAT TIME COMMAND |
341 |
1 ? S 0:00 init [3] |
342 |
22887 ? Ss 0:00 /usr/sbin/syslog-ng |
343 |
20496 pts/0 S 0:00 /bin/bash -login |
344 |
20508 pts/0 R+ 0:00 ps ax |
345 |
# <i>logout</i> |
346 |
</pre> |
347 |
|
348 |
</body> |
349 |
</section> |
350 |
</chapter> |
351 |
|
352 |
<chapter> |
353 |
<title>Zarządzanie staje się prostsze</title> |
354 |
<section> |
355 |
<title>Uruchamianie gości razem z systemem</title> |
356 |
<body> |
357 |
|
358 |
<p> |
359 |
Każdy vserwer może zostać uruchomiony w trakcie ładowania systemu poprzez |
360 |
oznaczenie go [ang. MARK]. W tym celu wystarczy tylko ustawić je w |
361 |
konfiguracjach poszczególnych gości oraz dodać odpowiedni skrypt startowy do |
362 |
domyślnego poziomu uruchamiania. |
363 |
</p> |
364 |
|
365 |
<pre caption="Konfiguracja oznaczeń (MARK)"> |
366 |
<comment>(Należy to wykonać dla każdego gościa którego chce się uruchamiać na starcie systemu)</comment> |
367 |
# <i>mkdir -p /etc/vservers/myguest/apps/init</i> |
368 |
# <i>echo "default" > /etc/vservers/myguest/apps/init/mark</i> |
369 |
</pre> |
370 |
|
371 |
<pre caption="Dodawanie skryptu startowego"> |
372 |
# <i>rc-update add vservers.default default</i> |
373 |
</pre> |
374 |
|
375 |
</body> |
376 |
</section> |
377 |
<section> |
378 |
<title>Utrzymywanie zsynchronizowanego drzewa Portage</title> |
379 |
<body> |
380 |
|
381 |
<p> |
382 |
Skrypt <c>vesync</c> pozwala na łatwą aktualizację wszystkich nakładek (ang. |
383 |
overlay) oraz metadanych. Skrypt <c>vemerge</c> jest prostą nakładką (ang. |
384 |
wrapper) na <c>emerge</c> do użytku wewnątrz wirtualnych serwerów. |
385 |
</p> |
386 |
|
387 |
<pre caption="Przykłady"> |
388 |
<comment>(Synchronizacja metadanych dla 'myguest')</comment> |
389 |
# <i>vesync myguest</i> |
390 |
<comment>(Synchronizacja metadanych dla wszystkich)</comment> |
391 |
# <i>vesync --all</i> |
392 |
<comment>(Synchronizacja nakładki o nazwie "myoverlay" dla wszystkich)</comment> |
393 |
# <i>vesync --all \</i> |
394 |
<i>--overlay /usr/local/overlays/myoverlay \</i> |
395 |
<i>--overlay-host rsync://rsync.myhost.com/myoverlay \</i> |
396 |
<i>--overlay-only</i> |
397 |
<comment>(Instalacja app-editors/vim na 'myguest')</comment> |
398 |
# <i>vemerge myguest -- app-editors/vim -va</i> |
399 |
</pre> |
400 |
|
401 |
</body> |
402 |
</section> |
403 |
<section> |
404 |
<title>Aktualizacja gości</title> |
405 |
<body> |
406 |
|
407 |
<p> |
408 |
Każdy gość Gentoo może współdzielić pakiety w celu skrócenia czasu |
409 |
kompilacji. W tym celu należy stworzyć katalog na pakiety na komputerze hoście. |
410 |
W przykładzie tym katalogiem będzie <path>/var/cache/vpackages</path> i zostanie |
411 |
on zamontowany do <path>/usr/portage/packages</path> na każdym vserverze. |
412 |
</p> |
413 |
|
414 |
<pre caption="Dodawanie powiązanego (ang. bind) udziału do konfiguracji vserwera"> |
415 |
# <i>mkdir -p /var/cache/vpackages</i> |
416 |
# <i>$EDITOR /etc/vservers/myguest/fstab</i> |
417 |
<comment>(Dodanie linijki na koniec pliku)</comment> |
418 |
/var/cache/vpackages /usr/portage/packages none bind,rw 0 0 |
419 |
</pre> |
420 |
|
421 |
<p> |
422 |
Na koniec należy użyć <c>vupdateworld</c> do aktualizacji każdego vserwera. |
423 |
Polecenie to jest odpowiednikiem <c>emerge --deep --update --newuse world</c> |
424 |
wraz z dodatkowymi opcjami. |
425 |
</p> |
426 |
|
427 |
<pre caption="przykłady z vupdateworld"> |
428 |
<comment>(Symulacja aktualizacji dla 'myguest')</comment> |
429 |
# <i>vupdateworld myguest -- -vp</i> |
430 |
<comment>(Aktualizacja 'myguest' przy użyciu prekompilowanych pakietów)</comment> |
431 |
# <i>vupdateworld myguest -- -k</i> |
432 |
<comment>(Aktualizacja wszystkich vserwerów przy użyciu prekompilowanych pakietów)</comment> |
433 |
# <i>vupdateworld --all -- -k</i> |
434 |
</pre> |
435 |
|
436 |
<note> |
437 |
Korzystanie z prekompilowanych pakietów jest możliwe po ustawieniu zmiennej |
438 |
PORTAGE_BINHOST w każdym gościu (szczegóły w <c>man make.conf</c>) oraz |
439 |
zmiennej FEATURES="buildpkg" przynajmniej w jednym. |
440 |
</note> |
441 |
|
442 |
<p> |
443 |
Po udanej aktualizacji pakietów można łatwo zaktualizować wszystkie konfiguracje |
444 |
za pomocą <c>vdispatch-conf</c>. Jest to nakładka na <c>dispatch-conf</c> i |
445 |
identycznie się zachowuje. |
446 |
</p> |
447 |
|
448 |
<pre caption="przykłady z vdispatch-conf"> |
449 |
<comment>(Aktualizacja konfiguracji dla 'myguest')</comment> |
450 |
# <i>vdispatch-conf myguest</i> |
451 |
<comment>(Aktualizacja konfiguracji dla wszystkich vserwerów)</comment> |
452 |
# <i>vdispatch-conf --all</i> |
453 |
</pre> |
454 |
|
455 |
</body> |
456 |
</section> |
457 |
|
458 |
<section> |
459 |
<title>Kontakt</title> |
460 |
<body> |
461 |
|
462 |
<p> |
463 |
W przypadku wystąpienia jakichkolwiek problemów, należy skontaktować się z <mail |
464 |
link="hollow@g.o">autorem</mail> tego tekstu lub zgłosić problem na <uri |
465 |
link="http://bugs.gentoo.org">Bugzilli</uri>. |
466 |
</p> |
467 |
|
468 |
</body> |
469 |
</section> |
470 |
</chapter> |
471 |
</guide> |
472 |
|
473 |
|
474 |
|
475 |
-- |
476 |
gentoo-commits@g.o mailing list |