A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat | Következő változat Következő változat mindkét oldalon | ||
migrating_to_openvz [2009-04-24 00:00] |
migrating_to_openvz [2009-04-24 22:06] erno@rigo.info létrehozva |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | ====== Linux LAMP szerver migráció OpenVZ virtualizációra ====== | ||
+ | |||
+ | Az alábbiakban igyekszem összefoglalni azokat a szempontokat és teendőket, melyek egy [[http://en.wikipedia.org/wiki/LAMP_(software_bundle)|LAMP]] szoftverekkel használt, több külsős cég számára teljes internetes megjelenést biztosító Linux szerveren az [[http://wiki.openvz.org|OpenVZ]] "konténer alapú" virtualizációs technológia bevezetésével járnak. | ||
+ | |||
+ | ===== Miből ===== | ||
+ | |||
+ | Kiindulási rendszerünk tehát egy általános Linux web- és mail-kiszolgáló. Egy ilyen gép jellemzően számos - egymástól részben független - feladat ellátására szolgál. Ezek jelen dokumentum tekintetében a következők: | ||
+ | - HTTP - a gép elsődleges feladata a rajta futó céges weblapok kiszolgálása, ez gyakran több virtuális hostot jelent. Jelen dokumentumban az Apache web szerver felhasználását feltételezem. | ||
+ | - FTP/WebDAV - a webfejlesztőknek és tartalomfelelősöknek lehetőséget kell biztosítani a weblapok anyagának kezelésére illetve fejlesztés alatt álló webtartalmak elkülönítésére. Több felületen is elérést biztosíthatunk ezekhez a tartalmakhoz. Közös követelmény, hogy a webszerver kiszolgálási környezetét a lehető legkisebb mértékben legyenek képesek módosítani, vagyis lehetőleg egy adott felhasználó ne férjen hozzá mások adataihoz és saját anyagainak Linux jogosultságait se legyen lehetősége befolyásolni - ezek miatt a követelmények miatt az SSH/SCP rendszer használatát ezen a területen nem vesszük számításba. | ||
+ | - PHP - a rendszeren futó weblapok elsődleges motorja, a szerver oldali alkalmazások virtuális hostokra elkülönített kiszolgálásáért felelős. | ||
+ | - SMTP - a rendszer egyéb felhasználói általában levelezési rendszert igényelnek, amihez gyakran társul spam- és vírusszűrés, POP3 és IMAP mailboxok valamint esetlegesen egy webmail felület is. A levelezési rendszer kialakításához a Postfix és Dovecot szoftverek felhasználása mellett a ClamAV, MailScanner, procmail és SpamAssassin kerül majd terítékre. | ||
+ | - MySQL - a rendszer hátterét képző adatbázis kezelésére is szükség van. Jelen dokumentum nem foglalkozik más SQL rendszerek (PostgreSQL, Firebird, stb...) konfigurációs problémáival. | ||
+ | - DNS - a weblapokhoz és céges levelezéshez általában saját domain nevek is társulnak, ezek kiszolgálását el kell végezni. Esetünben a bind9 kiszolgáló kerül számításba. | ||
+ | |||
+ | ===== Miért ===== | ||
+ | |||
+ | Mire jó ez az egész? Miben különbözik egy klasszikus módon telepített Linux webszerver egy OpenVZ alapú rendszertől? Első sorban az alábbi szempontok alapján javaslom az áttérést: | ||
+ | - **Biztonság** - a fent felsorolt szoftverekhez tartozó adminisztratív és felhasználói teendők a lehetőségekhez mérten elkülönítendők. A legtöbb esetben biztonsági szempontból az a célszerű, ha a rendszer különböző elérési pontjai eleve elkülönítve futnak, vagyis például egy hibásan megírt weblapon történő kódfuttatás közvetlenül nem érintheti a levelező rendszert vagy az adatbázis kezelő szoftvereket. A biztonság egy másik aspektusa a szolgáltatásbiztonság. Virtualizáció mellett könnyen nyílik lehetőségünk az egyes szolgáltatások komplett archiválására és szükség esetén másik fizikai számítógépen való újraindítására. | ||
+ | - **Adminisztráció** - egy elkülönített szoftverek karbantartása egy bizonyos összetettség felett egyszerűbbé válik ha az egyes alkalmazási területek operációs szempontból is külön virtuális gépekben foglalnak helyet. Könnyebbé válik a rendszer frissítése, konfigurációja, ráadásul az egyes változtatások előzetesen körültekintően tesztelhetők is. | ||
+ | - **Terheléselosztás** - egy bizonyos terhelés fölött egyes szolgáltatások prioritását a többiekéhez képest csökkenteni lehet. Például a természeténél fogva kötegelt feldolgozást végző SMTP szolgáltatás prioritása egy streaming web tartalomhoz képest jóval alacsonyabb is lehet. Az OpenVZ segítségével lehetőség nyílik a Linux adta natív erőforrás-megosztási eszközöknél jóval finomabban szabályozni, melyik szolgáltatásnak mennyi erőforrás jusson. Szükség szerint jóval egyszerűbbé válik az egyes szolgáltatások külön dedikált számítógépre való költöztetése is. | ||
+ | |||
+ | ===== Mit ===== | ||
+ | |||
+ | Az elkészíteni kívánt rendszer elsődleges operációs rendszere ("Hardware Node" - //HN//((ezen kívül még //HW//, //VE0// és //CT0// néven is nevezik))) csak a virtuális gépek futtatását és az alapvető rendszergazdai felületet nyújtó SSH szolgáltatást végzi, a HN által futtatott virtuális környezet az alábbi részekből áll (minden egyes pont egy külön virtuális gépet ("Virtual Environment" - //VE//((nevezik még a "Container" szó alapján //CT//-nek is))) jelöl): | ||
+ | - LDAP felhasználói adatbázis - feladata a rendszerben ismert felhasználók központi tárolása és adminisztrációja. Erre azért van szükség, mert az egyes VE-k karbantartása meglehetősen nehéz lenne, ha egy konkrét személyez tartozó nevet és jelszót az összes szolgáltatás esetében külön kellene felvenni és módosítani. Az LDAP segítségével hálózati azonosítási szolgáltatást nyújtunk a VE-ken futtató helyi - virtuális - hálózaton. Ez későbbiekben lehetővé teszi az egy darab HN-ről a több párhuzamosan futó HN-re való könnyebb áttérést is (vö: terheléselosztás). | ||
+ | - DNS szolgáltatás - elkülönítése azért is célszerű, mert általában nem igényel a központi adminisztrátoron kívül más felhasználók (pl. ügyfelek) számára hozzáférést. | ||
+ | - MySQL (és más SQL szerverek) - | ||
+ | |||
+ | |||
+ | ===== Hogyan ===== | ||
+ | |||
+ | ==== Előkészület ==== | ||
+ | |||
+ | A rendszer előkészítésének első lépése az OpenVZ virtualizációs technológia telepítése. Ehhez legalább a kernel lecserélésére és a szükséges adminisztrációs eszközök (vzctl, stb...) feltelepítésére van szükség. | ||
+ | |||
+ | Ezt követően szükség van a tervezett virtualizált rendszer alapjainak lefektetésére. | ||
+ | |||
+ | |||
+ | |||