rane 07/09/28 02:22:17
Added: vserver-howto.xml
Log:
new translation by Piotr Miedzik (qermit), rev. 1.10
Revision Changes Path
1.1 xml/htdocs/proj/pl/vps/vserver-howto.xml
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/pl/vps/vserver-howto.xml?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/proj/pl/vps/vserver-howto.xml?rev=1.1&content-type=text/plain
Index: vserver-howto.xml
===================================================================
<?xml version='1.0' encoding="UTF-8"?>
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/proj/pl/vps/vserver-howto.xml,v 1.1 2007/09/28 02:22:16 rane Exp $ -->
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<guide link="/proj/pl/vps/vserver-howto.xml" lang="pl">
<title>Linux-VServer w Gentoo</title>
<author title="Autor">
<mail link="hollow@g.o">Benedikt Boehm</mail>
</author>
<author title="Redakcja">
<mail link="fox2mike@g.o">Shyam Mani</mail>
</author>
<author title="Tłumaczenie">
Paweł Kwiatkowski
</author>
<author title="Tłumaczenie">
<mail link="miedzik_piotr@...">Piotr Miedzik</mail>
</author>
<abstract>
Opis instalacji wirtualnych serwerów przy użyciu technologii Linux-Vserver.
</abstract>
<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>
<version>1.10</version>
<date>2007-03-26</date>
<chapter>
<title>Wprowadzenie</title>
<section>
<title>Koncepcja Linux-VServer</title>
<body>
<p>
Linux-VServer pozwala na rozdzielenie przestrzeni użytkownika na jednostki, z
których każda jest osobnym serwerem dla procesów, które są w niej zawarte.
</p>
</body>
</section>
<section>
<title>Pojęcia użyte w tym przewodniku</title>
<body>
<table>
<tr>
<th>Termin</th>
<th>Opis</th>
</tr>
<tr>
<th>Linux-VServer, VServer</th>
<ti>
Linux-VSerwer to oficjalna nazwa projektu i jest używana w tym przewodniku
dokładnie w tym znaczeniu
</ti>
</tr>
<tr>
<th>vserwer, wirtualny serwer, gość</th>
<ti>
Wszystkie te terminy odnoszą się do pojedynczej instancji serwera (tj.
jednego serwera wirtualnego)
</ti>
</tr>
<tr>
<th>komputer host, host</th>
<ti>
Komputer, na którym zainstalowany jest Gentoo Linux i na którym będą
znajdować się wszystkie wirtualne serwery
</ti>
</tr>
<tr>
<th>util-vserver</th>
<ti>
Pakiet <c>util-vserver</c> zawiera wszystkie programy potrzebne do
zarządzania serwerami wirtualnymi
</ti>
</tr>
</table>
</body>
</section>
</chapter>
<chapter>
<title>Konfiguracja hosta</title>
<section>
<title>Instalacja jądra wspierającego VServer</title>
<body>
<pre caption="Instalacja vserver-sources">
# <i>emerge vserver-sources</i>
</pre>
<p>
Po instalacji źródeł vserver-sources należy je skonfigurować przy użyciu <c>make
menuconfig</c>. Poniżej znajduje się standardowa konfiguracja dla wersji 2.1.1
oraz wyższych. W wersjach 2.0.x niektóre opcje konfiguracji mogą być
niedostępne.
</p>
<pre caption="Konfiguracja vserver-sources">
# <i>cd /usr/src/linux-<WERSJA_JĄDRA>-vserver-<WERSJA_VSERVER></i>
# <i>make menuconfig</i>
Linux VServer --->
<comment>(Nie zaznaczamy opcji 'legacy')</comment>
[ ] Enable Legacy Kernel API
[ ] Enable Legacy Networking Kernel API
<comment>(Warto przeczytać pomoc dla tych opcji)</comment>
[ ] Remap Source IP Address
[*] Enable COW Immutable Link Breaking
[ ] Enable Virtualized Guest Time
[*] Enable Proc Security
[*] Enable Hard CPU Limits
[*] Avoid idle CPUs by skipping Time
[*] Limit the IDLE task
Persistent Inode Tagging (UID24/GID24) --->
[ ] Tag NFSD User Auth and Files
[*] Enable Inode Tag Propagation
[*] Honor Privacy Aspects of Guests
[ ] VServer Debugging Code
</pre>
<note>
Jeśli korzysta się z reiserfs jako systemu plików, na którym będą przechowywane
obrazy, należy w jądrze uaktywnić opcję "Extended attributes for reiserfs" czyli
rozszerzone funkcje reiserfs oraz dodać opcję <c>attrs</c> do pliku
<path>/etc/fstab</path>.
</note>
<pre caption="Konfiguracja opcji reiserfs">
File systems --->
<*> Reiserfs support
[*] ReiserFS extended attributes
</pre>
<pre caption="Przykład wpisu w fstab z atrybutami rozszerzonymi">
/dev/hdb1 /vservers reiserfs noatime,attrs 0 0
</pre>
<p>
Po zbudowaniu jądra należy uaktualnić konfigurację programu ładującego, a
następnie ponownie uruchomić system i sprawdzić czy startuje poprawnie.
</p>
<pre caption="Instalacja jądra">
<comment>(Budowanie jądra)</comment>
# <i>make</i>
<comment>(Instalacja)</comment>
# <i>make modules_install</i>
# <i>cp arch/<arch>/boot/bzImage /boot/kernel-<WERSJA_JĄDRA>-vserver-<WERSJA_VSERVER></i>
<comment>(Zmiana konfiguracji bootloadera w razie potrzeby i restart)</comment>
# <i>reboot</i>
</pre>
</body>
</section>
<section>
<title>Konfiguracja na komputerze host</title>
<body>
<p>
Aby zarządzać serwerami wirtualnymi, należy zainstalować pakiet util-vserwer,
który zawiera wszystkie niezbędne programy.
</p>
<pre caption="Instalacja util-vserver">
# <i>emerge >=sys-cluster/util-vserver-0.30.212</i>
</pre>
<p>
W celu zapewnienia odpowiednich praw dostępu do systemu plików
<path>/proc</path>, po każdym ponownym uruchomieniu komputera trzeba będzie
wykonać polecenie <c>vprocunhide</c>. Aby to zautomatyzować, należy dodać
skrypty vservera do domyślnego poziomu uruchamiania.
</p>
<pre caption="Skrypty startowe util-vserver">
# <i>rc-update add vprocunhide default</i>
# <i>/etc/init.d/vprocunhide start</i>
# <i>rc-update add util-vserver default</i>
# <i>/etc/init.d/util-vserver start</i>
</pre>
</body>
</section>
</chapter>
<chapter>
<title>Tworzenie szkieletu</title>
<section>
<title>Pobranie gotowych stage3/4</title>
<body>
<p>
Wiele poleceń związanych ze sprzętem jest niedostępnych wewnątrz wirtualnego
serwera. Dlatego kiedyś powstała specjalna, poprawiona wersja pakietu baselayout
o nazwie baselayout-vserver. Obecnie, konkretnie od wersji
baselayout-1.13.0_alpha12, wszystkie potrzebne zmiany zostały wprowadzone do
standardowego baselayout, a co za tym idzie nie są już potrzebne osobne pliki
stage, profile ani osobny pakiet baselayout. Jedynym minusem jest to, że
baselayout-1.13 został dodany do stage będącego dopiero w wersji alpha i nie ma
możliwości pobrania go z serwerów lustrzanych.
</p>
<p>
Gdy baselayout-1.13 zostanie ustabilizowany, będzie można używać plików stage3/4
z jednego z <uri link="/main/en/mirrors.xml">serwerów lustrzanych</uri>. Zanim
jednak to się stanie, wciąż trzeba pobierać stage3/4 z <uri
link="http://people.linux-vserver.org/~hollow/stages/">tego miejsca</uri>. W
związku z tym, że stage3/4 zawiera kompletne drzewo plików, można użyć metody
budowania z szablonów. Jednakże ta metoda jest dostępna dopiero od
util-vserver-0.30.213_rc5, należy więc sprawdzić zainstalowaną wersję.
</p>
<p>
Należy wybrać identyfikator kontekstowy dla vserwera (odradzamy używanie
dynamicznych identyfikatorów) oraz potrzebne informacje o urządzeniu sieciowym
(w tym przykładzie eth0 zostało skonfigurowane jako 192.168.1.253/24, a
identyfikator jest odpowiedni dla ostatnich dwóch części adresu IP serwera
wirtualnego).
</p>
<note>
Identyfikator powinien zawierać się w przedziale 1-49152.
</note>
</body>
</section>
<section>
<title>Metoda budowy z szablonów</title>
<body>
<p>
Przez długi czas zwykły styl uruchamiania był jedynym dostępnym. Na każdym z
gości był uruchamiany osobny proces init, tak jak na każdym innym uniksowym
systemie. Takie podejście miało jednak kilka wad:
</p>
<ul>
<li>
Nie było możliwości przejrzenia informacji dotyczących uruchamiania skryptów
init/rc
</li>
<li>
Marnowały się zasoby dla każdego procesu init w każdym wirtualnym serwerze
</li>
<li>Pojawiały się denerwujące konflikty o plik <path>/etc/inittab</path></li>
</ul>
<p>
Z tego powodu wielu użytkowników prosiło o ponowną implementację systemu
uruchamiania z Gentoo, która została zarzucona z powodu konieczności dodawania
ogromnej liczby poprawek działających mniej lub bardziej sprawnie oraz dużych
modyfikacji w baselayout. Jednak od wersji util-vserver-0.30.212 sposób
uruchamiania typowy dla Gentoo został ponownie zaimplementowany i w przyszłości
znów stanie się domyślną opcją.
</p>
<note>
Użytkownicy, którzy nie chcą korzystać z osobnych procesów init dla każdego
gościa lub tacy, którzy po prostu nie wiedzą co wybrać, powinni zaznaczyć sposób
uruchamiania typowy dla Gentoo.
</note>
<pre caption="Rozpoczęcie instalacji stage3">
# <i>vserver myguest build \</i>
<i>--context 1253 \</i>
<i>--hostname gentoo \</i>
<i>--interface eth0:192.168.1.253/24 \</i>
<i>--initstyle gentoo \</i> <comment>(Sposób uruchamiania, można go zmienić jeśli zachodzi taka potrzeba)</comment>
<i>-m template -- \</i>
<i> -d gentoo \</i>
<i> -t /path/to/stage4-<arch>-<version>.tar.bz2</i>
</pre>
<note>
Następnie należy odpowiednio skonfigurować sieć poprzez zmianę plików
<path>/etc/conf.d/hostname</path>, <path>/etc/conf.d/domainname</path> oraz
<path>/etc/hosts</path>. Należy to zrobić na każdym gościu. Szczegóły
konfiguracji są opisane w <uri
link="/doc/pl/handbook/handbook-x86.xml?part=1&chap=8#doc_chap2_sect1">
rozdziale 8.b.1</uri> oraz <uri
link="/doc/pl/handbook/handbook-x86.xml?part=1&chap=8#doc_chap2_sect4">
rozdziale 8.b.4</uri> Podręcznika Gentoo. Pozostała część konfiguracji sieci dla
wirtualnych serwerów zostanie przeprowadzona na komputerze host.
</note>
<p>
Teraz można sprawdzić działanie serwera wirtualnego używając poleceń podanych
poniżej.
</p>
<pre caption="Testowanie serwera wirtualnego">
# <i>vserver myguest start</i>
Gentoo/Linux 1.13.0_alpha12; http://www.gentoo.org/
Copyright 1999-2007 Gentoo Foundation; Distributed under the GPLv2
Press I to enter interactive boot mode
* Using existing device nodes in /dev [ ok ]
* root filesystem is mounted read-write - skipping
* Checking all filesystems [ ok ]
* Mounting local filesystems [ ok ]
* Activating (possible) swap [ ok ]
* Setting hostname to myguest [ ok ]
* Updating environment [ ok ]
* Cleaning /var/lock, /var/run [ ok ]
* Cleaning /tmp directory [ ok ]
* Initializing random number generator [ ok ]
* Setting system clock using the hardware clock [VPS] [ ok ]
* Starting syslog-ng [ ok ]
* Starting vixie-cron [ ok ]
* Starting local [ ok ]
# <i>vserver-stat</i>
CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME
0 90 1.4G 153.4K 14m00s11 6m45s17 2h59m59 root server
1252 2 3M 286 0m00s45 0m00s42 0m02s91 myguest
# <i>vserver myguest enter</i>
# <i>ps ax</i>
PID TTY STAT TIME COMMAND
1 ? S 0:00 init [3]
22887 ? Ss 0:00 /usr/sbin/syslog-ng
20496 pts/0 S 0:00 /bin/bash -login
20508 pts/0 R+ 0:00 ps ax
# <i>logout</i>
</pre>
</body>
</section>
</chapter>
<chapter>
<title>Zarządzanie staje się prostsze</title>
<section>
<title>Uruchamianie gości razem z systemem</title>
<body>
<p>
Każdy vserwer może zostać uruchomiony w trakcie ładowania systemu poprzez
oznaczenie go [ang. MARK]. W tym celu wystarczy tylko ustawić je w
konfiguracjach poszczególnych gości oraz dodać odpowiedni skrypt startowy do
domyślnego poziomu uruchamiania.
</p>
<pre caption="Konfiguracja oznaczeń (MARK)">
<comment>(Należy to wykonać dla każdego gościa którego chce się uruchamiać na starcie systemu)</comment>
# <i>mkdir -p /etc/vservers/myguest/apps/init</i>
# <i>echo "default" > /etc/vservers/myguest/apps/init/mark</i>
</pre>
<pre caption="Dodawanie skryptu startowego">
# <i>rc-update add vservers.default default</i>
</pre>
</body>
</section>
<section>
<title>Utrzymywanie zsynchronizowanego drzewa Portage</title>
<body>
<p>
Skrypt <c>vesync</c> pozwala na łatwą aktualizację wszystkich nakładek (ang.
overlay) oraz metadanych. Skrypt <c>vemerge</c> jest prostą nakładką (ang.
wrapper) na <c>emerge</c> do użytku wewnątrz wirtualnych serwerów.
</p>
<pre caption="Przykłady">
<comment>(Synchronizacja metadanych dla 'myguest')</comment>
# <i>vesync myguest</i>
<comment>(Synchronizacja metadanych dla wszystkich)</comment>
# <i>vesync --all</i>
<comment>(Synchronizacja nakładki o nazwie "myoverlay" dla wszystkich)</comment>
# <i>vesync --all \</i>
<i>--overlay /usr/local/overlays/myoverlay \</i>
<i>--overlay-host rsync://rsync.myhost.com/myoverlay \</i>
<i>--overlay-only</i>
<comment>(Instalacja app-editors/vim na 'myguest')</comment>
# <i>vemerge myguest -- app-editors/vim -va</i>
</pre>
</body>
</section>
<section>
<title>Aktualizacja gości</title>
<body>
<p>
Każdy gość Gentoo może współdzielić pakiety w celu skrócenia czasu
kompilacji. W tym celu należy stworzyć katalog na pakiety na komputerze hoście.
W przykładzie tym katalogiem będzie <path>/var/cache/vpackages</path> i zostanie
on zamontowany do <path>/usr/portage/packages</path> na każdym vserverze.
</p>
<pre caption="Dodawanie powiązanego (ang. bind) udziału do konfiguracji vserwera">
# <i>mkdir -p /var/cache/vpackages</i>
# <i>$EDITOR /etc/vservers/myguest/fstab</i>
<comment>(Dodanie linijki na koniec pliku)</comment>
/var/cache/vpackages /usr/portage/packages none bind,rw 0 0
</pre>
<p>
Na koniec należy użyć <c>vupdateworld</c> do aktualizacji każdego vserwera.
Polecenie to jest odpowiednikiem <c>emerge --deep --update --newuse world</c>
wraz z dodatkowymi opcjami.
</p>
<pre caption="przykłady z vupdateworld">
<comment>(Symulacja aktualizacji dla 'myguest')</comment>
# <i>vupdateworld myguest -- -vp</i>
<comment>(Aktualizacja 'myguest' przy użyciu prekompilowanych pakietów)</comment>
# <i>vupdateworld myguest -- -k</i>
<comment>(Aktualizacja wszystkich vserwerów przy użyciu prekompilowanych pakietów)</comment>
# <i>vupdateworld --all -- -k</i>
</pre>
<note>
Korzystanie z prekompilowanych pakietów jest możliwe po ustawieniu zmiennej
PORTAGE_BINHOST w każdym gościu (szczegóły w <c>man make.conf</c>) oraz
zmiennej FEATURES="buildpkg" przynajmniej w jednym.
</note>
<p>
Po udanej aktualizacji pakietów można łatwo zaktualizować wszystkie konfiguracje
za pomocą <c>vdispatch-conf</c>. Jest to nakładka na <c>dispatch-conf</c> i
identycznie się zachowuje.
</p>
<pre caption="przykłady z vdispatch-conf">
<comment>(Aktualizacja konfiguracji dla 'myguest')</comment>
# <i>vdispatch-conf myguest</i>
<comment>(Aktualizacja konfiguracji dla wszystkich vserwerów)</comment>
# <i>vdispatch-conf --all</i>
</pre>
</body>
</section>
<section>
<title>Kontakt</title>
<body>
<p>
W przypadku wystąpienia jakichkolwiek problemów, należy skontaktować się z <mail
link="hollow@g.o">autorem</mail> tego tekstu lub zgłosić problem na <uri
link="http://bugs.gentoo.org">Bugzilli</uri>.
</p>
</body>
</section>
</chapter>
</guide>
--
gentoo-commits@g.o mailing list
|