HA systeemid: Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Created page with 'Antud leht on alles toimetamisel ning ei ole veel valmis. Kõrgkäideldav klaster(HA cluster/High-availability cluster) on rühm servereid mis võimaldavad süsteemi kasutada m…')
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Antud leht on alles toimetamisel ning ei ole veel valmis.
Klastriks nimetatakse infotehnoloogias gruppi omavahel ühendatud arvuteid mis töötavad ühtse kogumina. Klastrite ehitamise eesmärk on tavaliselt jõudluse ja tõrkekindluse kasvatamine.  


Laias perspektiivis võib klastri jagada kolmeks põhiliseks komponendiks.
* Serverid
* Serverite vaheline võrk
* Serveritel asuv tarkvara


Kõrgkäideldav klaster(HA cluster/High-availability cluster) on rühm servereid mis võimaldavad süsteemi kasutada minimaalse käideldavuse kaoga.
Töökindlus klastri puhul on tähtis et kui süsteemi mingis komponendis tekib tõrge siis ülejäänud süsteem on suuteline ilma riknenud komponendita edasi toimima. Selle saavutamiseks dubleeritakse klastri komponente selleks et vähendada ohtu et mõni klastri sõlm tervikuna toimimast lakkaks. Lisaks on vajalik et kasutusel oleks spetsiaal tarkvara mis oskaks klastri komponenti tõrke korral enda andmevoo ümber seadistada nii et välditaks riknenud osa.  
Sellist tüüpi süsteemi ehitamine toimub üldiselt seadmete dubleerimisel, tõrkekindluse kasvatamiseks. Asja eesmärk on see et kui süsteemi mingis komponendis tekib tõrge siis ülejäänud süsteem on võimalik ilma riknenud komponendita edasi toimima. Ilma klasterdamiseta oleks mõne kriitilise komponendi purunemisel süsteemile laastav tagajärg. Kui server on ühendatud võrku vaid ühe switchi abil siis juhul kui antud switchiga midagi juhtub on süsteem koheselt rivist väljas. Klasterdamine mille puhul kasutatakse mitut switchi ning võrgukaarti on võimalik sellise probleemi juhtumisel liiklus suunata teisele võrgukaardile ning sealtkaudu mööda teist switchi teenuse kasutamine on jälle võimalik.


==Klastri tüübid==
==Klastri tüübid==


* Active/active - Klaster mille puhul kõik kasutuses olevad noded on aktiivsed. Juhul kui üks nodedest seiskub siis jaotatakse koormus ülejäänud nodede vahel ära.
===Arvutusklaster===
* Active/passive - Klaster mille puhul üks node on aktiivne ja teine node on ooteseisus. Juhul kui aktiivne node ära sureb käivitatakse teenus ooteseisus olevas nodes ning töö jätkub. Antud lahenduse puhul on probleemiks see, et üldiselt on süsteemi töös mõnda aega tõrge kuna süsteem peab aru saama et primaarne node on maas ja teise node käivitamine võtab aega.
 
* N+1 - Lisab süsteemi ühe lisa node mis käivitatakse alles siis kui üks nodedest on surnud. Seda nimetust kasutatakse üldiselt klastrites kus on palju nodesi jooksmas. Kahe nodega klastri puhul on see sama mis active/passive.
Arvutusklastreid kasutatakse arvutus-intensiivseteks protsessideks kus on tähtis suur arvutusvõimsus.
* N+M - Sama mis eelmine kuid lisa nodesi on rohkem. Sellist lahendust kasutatakse siis kui on vaja kõrgemat tõrkekindlust, miinuseks on kindlasti suurem kulu kuna serverite arv mida sellise süsteemi hoidmiseks on vaja on tunduvalt suurem.
 
* N-to-1 - Juhul kui failover toimub siis tagavara node tuuakse kasutusse ainult seni kuni primaarne node on tagasi online. Kui see hetk tuleb siis viiakse kõik teenused primaarse node peale tagasi ning failover node läheb jälle ooteseisu.
===Koormust jagav klaster===
* N-to-N - Kombinatsioon active/active ja N+M klastrist. Selle klastri puhul jagatakse failind node peal olevad teenused aktiivsete nodede vahel ära ning seega kaob vajadus standby nodede hoidmise järele.
 
Koormust jagavaks klastriks peetakse klastrit mille puhul koormust jaotatakse mitme sarnase seadme vahel selleks et saavutada optimaalne resursi kasutus, tõsta läbilaskevõimet, vähendada vasteaega ja vältida ülekoormust.
 
===Tõrkesiirde klaster===
 
Tõrkesiirdeks peetakse käideldavust suurendavat automatiseeritud või käsiprotsessei elaststete IT-teenuste ümberlülitusteks, kasutades varuseadmeid, -asukohti ja/või -võrgumarsruute.
 
==Tõrkesiirde klaster jaguneb==
 
* Active/active - Klaster mille puhul kõik kasutuses olevad klastri õlad on aktiivsed. Juhul kui üks õlgadest seiskub siis jaotatakse koormus ülejäänud õlgade vahel ära.
* Active/passive - Klaster mille puhul üks klastri õlg on aktiivne ja teine klastri õlg on ooteseisus. Juhul kui aktiivne klastri õlg ära sureb käivitatakse teenus ooteseisus olevas õlas ning töö jätkub. Antud lahenduse puhul on probleemiks see, et üldiselt on süsteemi töös mõnda aega tõrge kuna süsteem peab aru saama et primaarne õlg on maas ja teise klastri õla käivitamine võtab aega.
* N+1 - Lisab süsteemi ühe lisa klastri õla mis käivitatakse alles siis kui üks õlgadest on surnud. Seda nimetust kasutatakse üldiselt klastrites kus on palju õlgu jooksmas. Kahe õlaga klastri puhul on see sama mis active/passive.
* N+M - Sama mis eelmine kuid lisa klastri õlgu on rohkem. Sellist lahendust kasutatakse siis kui on vaja kõrgemat tõrkekindlust, miinuseks on kindlasti suurem kulu kuna serverite arv mida sellise süsteemi hoidmiseks on vaja on tunduvalt suurem.
* N-to-1 - Juhul kui failover toimub siis tagavara õlg tuuakse kasutusse ainult seni kuni primaarne õlg on tagasi online. Kui see hetk tuleb siis viiakse kõik teenused primaarse õla peale tagasi ning failover õlg läheb jälle ooteseisu.
* N-to-N - Kombinatsioon active/active ja N+M klastrist. Selle klastri puhul jagatakse failind õla peal olevad teenused aktiivsete õlgade vahel ära ning seega kaob vajadus standby õlgade hoidmise järele.


==Kõrgkäideldavuse mõõtmine==
==Kõrgkäideldavuse mõõtmine==
Line 19: Line 36:
<div align="center">
<div align="center">
{| class="wikitable"
{| class="wikitable"
!Availability %
!Käideldavus %
!Downtime per year
!Katkestuse pikkus aastas
!Downtime per month*
!Katkestuse pikkus kuus*
!Downtime per week
!Katkestuse pikkus nädalas
|-
|-
|90% ("one nine")
|90%  
|36.5 days
|36.5 päeva
|72 hours
|72 tundi
|16.8 hours
|16.8 tundi
|-
|-
|95%
|95%
|18.25 days
|18.25 päeva
|36 hours
|36 tundi
|8.4 hours
|8.4 tundi
|-
|-
|97%
|97%
|10.96 days
|10.96 päeva
|21.6 hours
|21.6 tundi
|5.04 hours
|5.04 tundi
|-
|-
|98%
|98%
|7.30 days
|7.30 päeva
|14.4 hours
|14.4 tundi
|3.36 hours
|3.36 tundi
|-
|-
|99% ("two nines")
|99%  
|3.65 days
|3.65 päeva
|7.20 hours
|7.20 tundi
|1.68 hours
|1.68 tundi
|-
|-
|99.5%
|99.5%
|1.83 days
|1.83 päeva
|3.60 hours
|3.60 tundi
|50.4 minutes
|50.4 minutit
|-
|-
|99.8%
|99.8%
|17.52 hours
|17.52 tundi
|86.23 minutes
|86.23 minutit
|20.16 minutes
|20.16 minutit
|-
|-
|99.9% ("three nines")
|99.9%  
|8.76 hours
|8.76 tundi
|43.8 minutes
|43.8 minutit
|10.1 minutes
|10.1 minutit
|-
|-
|99.95%
|99.95%
|4.38 hours
|4.38 tundi
|21.56 minutes
|21.56 minutit
|5.04 minutes
|5.04 minutit
|-
|-
|99.99% ("four nines")
|99.99%  
|52.56 minutes
|52.56 minutit
|4.32 minutes
|4.32 minutit
|1.01 minutes
|1.01 minutit
|-
|-
|99.999% ("five nines")
|99.999%
|5.26 minutes
|5.26 minutit
|25.9 seconds
|25.9 sekundit
|6.05 seconds
|6.05 sekundit
|-
|-
|99.9999% ("six nines")
|99.9999%
|31.5 seconds
|31.5 sekundit
|2.59 seconds
|2.59 sekundit
|0.605 seconds
|0.605 sekundit
|-
|-
|99.99999% ("seven nines")
|99.99999%  
|3.15 seconds
|3.15 sekundit
|0.259 seconds
|0.259 sekundit
|0.0605 seconds
|0.0605 sekundit


|}
|}
Line 98: Line 115:
Selleks et süsteemi muuta kõrgkäideldavaks tuleks kirja panna kõik süsteemi komponendid mis võivad süsteemi käideldavust mõjutada.
Selleks et süsteemi muuta kõrgkäideldavaks tuleks kirja panna kõik süsteemi komponendid mis võivad süsteemi käideldavust mõjutada.
Komponente mille riknemise puhul süsteem ei ole enam käideldav kutsutakse SPOF-ideks(Single Point Of Failure).
Komponente mille riknemise puhul süsteem ei ole enam käideldav kutsutakse SPOF-ideks(Single Point Of Failure).
Selleks võivad olla kõvakettad, võrguswitch, serveriruumi lokatsioon jms.
Selleks võivad olla andmesalvestus meedia, võrgu ühendused, serveriruumi lokatsioon jms.
Kõige lihtsam lahendus on osta kõike 10 tükki selleks et olla võrdlemisi kindel et juhul kui mingi jupp katki läheb on tagavara piisav selleks et süsteemi katkestust vältida. Selline lahendus võib tunduda turvaline kuid siin on suur miinus ehk hind. Kui riistvara tuleb osta 10x rohkem siis on kulu vähemalt 10x suurem ning siin tulebki kõige keerulisem küsimus kõrgkäideldava klastri ehitamisel. Kui suurt investeeringut me oleme nõus tegema selleks et käideldavuses komakohti juurde saada. Enamasti siiski piisab sellest kui kõik seadmed on vähemalt dubleeritud.
Juhul kui süsteem on kaardistatud tuleks otsustada millised komponendid on kriitilised ning vajavad klasterdamist. Klasterdamise plaani koostamisel on tähtis leida kesktee äripoole soovide ja soetusmaksumuse vahel. See osutub üldiselt kõige keerukamaks kuna tihti on raske põhjendada suurt väljaminekut mida klaster lahendus esialgu kindlasti on. Teine kriitiline komponent on süsteemide käideldavuse nõuete kokku leppimine. Tüüpiliselt on äripoole nõudmised ja eeldused süsteemidele reaalsusest erinevad ning nende täitmine tunduvalt keerukam kui reaalselt vaja oleks. Seetõttu ongi mõistlik süsteemi analüüsida ja kokku leppida kas ikka kõik süsteemid on kriitilised või on mõne süsteemi puhul ka katkestused lubatud.  
 
==Klasterdatud failisüsteem==
 
Klasterdatud failisüsteemid võib jagada geograafilisteks ja lokaalseteks. Geograafiliste andmesalvestusklastrite puhul peegeldatakse eri lokatsioonides asuvate andmesalvestus seadmetes olevaid andmeid. See on eriti vajalik selliste süsteemide puhul kus süsteemid asuvad eri riikides ning andmete kättesaadavus igalpool on tähtis. Juhul kui võrgu ühendusega tekib probleeme on sellise lahenduse puhul igas lokatsioonis andmed olemas. Teiseks klastri tüübiks võib pidada lokaalset ehk jagatud salvestusseadmega klastrit. Selle puhul tagatakse tõrkekindlus andmete muutmise jälgimises(lukutabelid) ning sõltumatute ketaste liiasmassiivi selleks et tagada andmete õigsus ja käideldavus ka riistvaralise vea korral.


==Klastri eelised==
==Klastri eelised==
Klastri suurim eelis tavalise klasterdamata süsteemi ees lisaks suurenenud käideldavusele on skaleeritavus. Active/active klastri puhul kus on kasutusel n arv servereid süsteemi jooksutamiseks on võimalik lihtsa vaevaga lisada süsteemi uusi servereid ning vanu välja võtta ilma süsteemi tööd häirimata. Klasterdatud lahenduse korral saavad admin-id rahulikumalt öösel magada kuna isegi kui toimub midagi saab suure tõenäosusega süsteem probleemi lahendamisega hakkama. See loomulikult ei tähenda et juhul kui on klasterdatud süsteem siis admini enam vaja pole või et ta teadetele reageerima ei pea kuid tööd teeb see vähemaks küll. Ning mis parim, Admin saab lõpuks ometi päeval süsteeme maha võtta. Juhul kui on vaja serverile A teha hooldustöid siis tõstetakse kõik teenused sealt ära ning ilma rakenduse tööd peatamata on võimalik servereid ka päeval maha võtta.
 
Klastri eelised klasterdamata süsteemide ees on:
* Suurenenud tõrkekindlus
* Suurem jõudlus
* Parem skaleeritavus
* Mugavam hooldus
* Rahulikum uni administraatoritel
 
==Klaster süsteemide puhul kasutusel olevad mõisted==
 
===Aju poolitus/Split brain===
 
Split brain ehk Aju poolituseks peetakse klastri seisu juhul kui klastri kahe poole vaheline ühendus kaob ning mõlema klastri poole jaoks paistab teine pool surnud olevat. Sellisel juhul  võtavad mõlemad pooled aktiivse rolli kuigi teine pool on veel elus.
 
===Tõrkesiire/failover===
 
Tõrkesiire võib olla nii manuaalne kui automaatne ning selle käigus viiakse teenused katkiselt klastri õlalt tervele üle selleks et süsteemi töö taastada/süsteemi töö säilitada.
 
===Tagasisiire/failback===
 
Tagasisiire toimub juhul kui klaster lahendus on ehitatud selliselt et primaarse klastri õla tööle hakkamisel tõstetakse aktiivne õlg sekundaarselt sinna tagasi muutes sekundaarse õla taas ootel olevaks.
 
===Südamelöök/heartbeat===
 
Südamelöögiks peetakse klastri puhul perioodilist signaali mida süsteemid saadavad üksteisele selleks et näidata et nad on aktiivsed ja toimivad. Üldiselt on südamelöökide jaoks kasutusel eraldi võrk kuhu pääsevad vaid klastri noded ning selle abil jälgitakse klastri seisukorda.
 
 
Kasutatud materjalid:
http://et.wikipedia.org/wiki/Klaster_(infotehnoloogia)
 
http://en.wikipedia.org/wiki/High-availability_cluster
 
http://en.wikipedia.org/wiki/High_availability
 
http://akit.cyber.ee/terms/
 
http://en.wikipedia.org/wiki/Heartbeat_network
 
http://en.wikipedia.org/wiki/Split-brain_(computing)
 
 
Juhend Debian kõrgkäideldavaks muutmiseks:
http://kuutorvaja.eenet.ee/wiki/Linux-HA_Debianiga
 
Essee SAP-i kõrgkäideldavusest:
https://wiki.itcollege.ee/index.php/User:Mrajur

Latest revision as of 23:41, 17 January 2013

Klastriks nimetatakse infotehnoloogias gruppi omavahel ühendatud arvuteid mis töötavad ühtse kogumina. Klastrite ehitamise eesmärk on tavaliselt jõudluse ja tõrkekindluse kasvatamine.

Laias perspektiivis võib klastri jagada kolmeks põhiliseks komponendiks.

  • Serverid
  • Serverite vaheline võrk
  • Serveritel asuv tarkvara

Töökindlus klastri puhul on tähtis et kui süsteemi mingis komponendis tekib tõrge siis ülejäänud süsteem on suuteline ilma riknenud komponendita edasi toimima. Selle saavutamiseks dubleeritakse klastri komponente selleks et vähendada ohtu et mõni klastri sõlm tervikuna toimimast lakkaks. Lisaks on vajalik et kasutusel oleks spetsiaal tarkvara mis oskaks klastri komponenti tõrke korral enda andmevoo ümber seadistada nii et välditaks riknenud osa.

Klastri tüübid

Arvutusklaster

Arvutusklastreid kasutatakse arvutus-intensiivseteks protsessideks kus on tähtis suur arvutusvõimsus.

Koormust jagav klaster

Koormust jagavaks klastriks peetakse klastrit mille puhul koormust jaotatakse mitme sarnase seadme vahel selleks et saavutada optimaalne resursi kasutus, tõsta läbilaskevõimet, vähendada vasteaega ja vältida ülekoormust.

Tõrkesiirde klaster

Tõrkesiirdeks peetakse käideldavust suurendavat automatiseeritud või käsiprotsessei elaststete IT-teenuste ümberlülitusteks, kasutades varuseadmeid, -asukohti ja/või -võrgumarsruute.

Tõrkesiirde klaster jaguneb

  • Active/active - Klaster mille puhul kõik kasutuses olevad klastri õlad on aktiivsed. Juhul kui üks õlgadest seiskub siis jaotatakse koormus ülejäänud õlgade vahel ära.
  • Active/passive - Klaster mille puhul üks klastri õlg on aktiivne ja teine klastri õlg on ooteseisus. Juhul kui aktiivne klastri õlg ära sureb käivitatakse teenus ooteseisus olevas õlas ning töö jätkub. Antud lahenduse puhul on probleemiks see, et üldiselt on süsteemi töös mõnda aega tõrge kuna süsteem peab aru saama et primaarne õlg on maas ja teise klastri õla käivitamine võtab aega.
  • N+1 - Lisab süsteemi ühe lisa klastri õla mis käivitatakse alles siis kui üks õlgadest on surnud. Seda nimetust kasutatakse üldiselt klastrites kus on palju õlgu jooksmas. Kahe õlaga klastri puhul on see sama mis active/passive.
  • N+M - Sama mis eelmine kuid lisa klastri õlgu on rohkem. Sellist lahendust kasutatakse siis kui on vaja kõrgemat tõrkekindlust, miinuseks on kindlasti suurem kulu kuna serverite arv mida sellise süsteemi hoidmiseks on vaja on tunduvalt suurem.
  • N-to-1 - Juhul kui failover toimub siis tagavara õlg tuuakse kasutusse ainult seni kuni primaarne õlg on tagasi online. Kui see hetk tuleb siis viiakse kõik teenused primaarse õla peale tagasi ning failover õlg läheb jälle ooteseisu.
  • N-to-N - Kombinatsioon active/active ja N+M klastrist. Selle klastri puhul jagatakse failind õla peal olevad teenused aktiivsete õlgade vahel ära ning seega kaob vajadus standby õlgade hoidmise järele.

Kõrgkäideldavuse mõõtmine

Süsteemi käideldavust mõõdetakse selle järgi millal teenused on saadavad. Juhul kui süsteem on töös kuid teenused mida süsteem peaks pakkuma ei toimi on tegemist downtimega.

Käideldavus % Katkestuse pikkus aastas Katkestuse pikkus kuus* Katkestuse pikkus nädalas
90% 36.5 päeva 72 tundi 16.8 tundi
95% 18.25 päeva 36 tundi 8.4 tundi
97% 10.96 päeva 21.6 tundi 5.04 tundi
98% 7.30 päeva 14.4 tundi 3.36 tundi
99% 3.65 päeva 7.20 tundi 1.68 tundi
99.5% 1.83 päeva 3.60 tundi 50.4 minutit
99.8% 17.52 tundi 86.23 minutit 20.16 minutit
99.9% 8.76 tundi 43.8 minutit 10.1 minutit
99.95% 4.38 tundi 21.56 minutit 5.04 minutit
99.99% 52.56 minutit 4.32 minutit 1.01 minutit
99.999% 5.26 minutit 25.9 sekundit 6.05 sekundit
99.9999% 31.5 sekundit 2.59 sekundit 0.605 sekundit
99.99999% 3.15 sekundit 0.259 sekundit 0.0605 sekundit

Antud tabelist on näha et 99% uptime ja 99.99% uptime vahe on väga suur ning siin on iga komakoht väga tähtis.

Kõrgkäideldavuse rakendamine

Selleks et süsteemi muuta kõrgkäideldavaks tuleks kirja panna kõik süsteemi komponendid mis võivad süsteemi käideldavust mõjutada. Komponente mille riknemise puhul süsteem ei ole enam käideldav kutsutakse SPOF-ideks(Single Point Of Failure). Selleks võivad olla andmesalvestus meedia, võrgu ühendused, serveriruumi lokatsioon jms. Juhul kui süsteem on kaardistatud tuleks otsustada millised komponendid on kriitilised ning vajavad klasterdamist. Klasterdamise plaani koostamisel on tähtis leida kesktee äripoole soovide ja soetusmaksumuse vahel. See osutub üldiselt kõige keerukamaks kuna tihti on raske põhjendada suurt väljaminekut mida klaster lahendus esialgu kindlasti on. Teine kriitiline komponent on süsteemide käideldavuse nõuete kokku leppimine. Tüüpiliselt on äripoole nõudmised ja eeldused süsteemidele reaalsusest erinevad ning nende täitmine tunduvalt keerukam kui reaalselt vaja oleks. Seetõttu ongi mõistlik süsteemi analüüsida ja kokku leppida kas ikka kõik süsteemid on kriitilised või on mõne süsteemi puhul ka katkestused lubatud.

Klasterdatud failisüsteem

Klasterdatud failisüsteemid võib jagada geograafilisteks ja lokaalseteks. Geograafiliste andmesalvestusklastrite puhul peegeldatakse eri lokatsioonides asuvate andmesalvestus seadmetes olevaid andmeid. See on eriti vajalik selliste süsteemide puhul kus süsteemid asuvad eri riikides ning andmete kättesaadavus igalpool on tähtis. Juhul kui võrgu ühendusega tekib probleeme on sellise lahenduse puhul igas lokatsioonis andmed olemas. Teiseks klastri tüübiks võib pidada lokaalset ehk jagatud salvestusseadmega klastrit. Selle puhul tagatakse tõrkekindlus andmete muutmise jälgimises(lukutabelid) ning sõltumatute ketaste liiasmassiivi selleks et tagada andmete õigsus ja käideldavus ka riistvaralise vea korral.

Klastri eelised

Klastri eelised klasterdamata süsteemide ees on:

  • Suurenenud tõrkekindlus
  • Suurem jõudlus
  • Parem skaleeritavus
  • Mugavam hooldus
  • Rahulikum uni administraatoritel

Klaster süsteemide puhul kasutusel olevad mõisted

Aju poolitus/Split brain

Split brain ehk Aju poolituseks peetakse klastri seisu juhul kui klastri kahe poole vaheline ühendus kaob ning mõlema klastri poole jaoks paistab teine pool surnud olevat. Sellisel juhul võtavad mõlemad pooled aktiivse rolli kuigi teine pool on veel elus.

Tõrkesiire/failover

Tõrkesiire võib olla nii manuaalne kui automaatne ning selle käigus viiakse teenused katkiselt klastri õlalt tervele üle selleks et süsteemi töö taastada/süsteemi töö säilitada.

Tagasisiire/failback

Tagasisiire toimub juhul kui klaster lahendus on ehitatud selliselt et primaarse klastri õla tööle hakkamisel tõstetakse aktiivne õlg sekundaarselt sinna tagasi muutes sekundaarse õla taas ootel olevaks.

Südamelöök/heartbeat

Südamelöögiks peetakse klastri puhul perioodilist signaali mida süsteemid saadavad üksteisele selleks et näidata et nad on aktiivsed ja toimivad. Üldiselt on südamelöökide jaoks kasutusel eraldi võrk kuhu pääsevad vaid klastri noded ning selle abil jälgitakse klastri seisukorda.


Kasutatud materjalid: http://et.wikipedia.org/wiki/Klaster_(infotehnoloogia)

http://en.wikipedia.org/wiki/High-availability_cluster

http://en.wikipedia.org/wiki/High_availability

http://akit.cyber.ee/terms/

http://en.wikipedia.org/wiki/Heartbeat_network

http://en.wikipedia.org/wiki/Split-brain_(computing)


Juhend Debian kõrgkäideldavaks muutmiseks: http://kuutorvaja.eenet.ee/wiki/Linux-HA_Debianiga

Essee SAP-i kõrgkäideldavusest: https://wiki.itcollege.ee/index.php/User:Mrajur