Ievads SSD. 2. daļa. Interfeiss

Ievads SSD. 2. daļa. Interfeiss

Š’ pēdējā daļa Sērijā ā€œIevads SSDā€ mēs runājām par disku parādÄ«Å”anās vēsturi. Otrajā daļā tiks runāts par saskarnēm mijiedarbÄ«bai ar diskdziņiem.

Saziņa starp procesoru un perifērijas ierÄ«cēm notiek saskaņā ar iepriekÅ” definētām konvencijām, ko sauc par saskarnēm. Å ie lÄ«gumi regulē mijiedarbÄ«bas fizisko un programmatÅ«ras lÄ«meni.

Interfeiss ir sistēmas elementu mijiedarbības rīku, metožu un noteikumu kopums.

Saskarnes fiziskā ievieÅ”ana ietekmē Ŕādus parametrus:

  • sakaru kanāla jauda;
  • maksimālais vienlaikus pievienoto ierīču skaits;
  • raduÅ”os kļūdu skaits.

Diska saskarnes ir veidotas uz I/O porti, kas ir pretstats atmiņas I/O un neaizņem vietu procesora adreÅ”u telpā.

Paralēlie un seriālie porti

Saskaņā ar datu apmaiņas metodi I/O porti ir sadalīti divos veidos:

  • paralēli;
  • konsekventi.

Kā norāda nosaukums, paralēlais ports vienlaikus nosÅ«ta maŔīnas vārdu, kas sastāv no vairākiem bitiem. Paralēlais ports ir vienkārŔākais datu apmaiņas veids, jo tam nav nepiecieÅ”ami sarežģīti shēmu risinājumi. VienkārŔākajā gadÄ«jumā katrs maŔīnas vārda bits tiek nosÅ«tÄ«ts pa savu signāla lÄ«niju, un atgriezeniskajai saitei tiek izmantotas divas servisa signāla lÄ«nijas: Dati gatavi Šø Dati pieņemti.

Ievads SSD. 2. daļa. Interfeiss
Paralēli porti no pirmā acu uzmetiena Ŕķiet ļoti labi mērogojami: vairāk signāla lÄ«niju nozÄ«mē, ka vienlaikus tiek pārsÅ«tÄ«ts vairāk bitu un lÄ«dz ar to lielāka caurlaidspēja. Tomēr signāla lÄ«niju skaita palielināŔanās dēļ starp tām rodas traucējumi, kas izraisa pārraidÄ«to ziņojumu izkropļojumus.

Seriālie porti ir pretēji paralēlajiem portiem. Dati tiek nosÅ«tÄ«ti pa vienam bitam, kas samazina kopējo signāla lÄ«niju skaitu, bet palielina I/O kontrollera sarežģītÄ«bu. RaidÄ«tāja kontrolleris saņem maŔīnas vārdu vienlaikus un ir jāpārraida pa vienam bitam, savukārt uztvērēja kontrollerim ir jāsaņem biti un jāsaglabā tie tādā paŔā secÄ«bā.

Ievads SSD. 2. daļa. Interfeiss
Neliels signāla līniju skaits ļauj palielināt ziņojumu pārraides biežumu bez traucējumiem.

SCSI

Ievads SSD. 2. daļa. Interfeiss
Mazo datorsistēmu interfeiss (SCSI) parādÄ«jās tālajā 1978. gadā un sākotnēji bija paredzēts dažādu profilu ierīču apvienoÅ”anai vienā sistēmā. SCSI-1 specifikācija ir paredzēta lÄ«dz 8 ierīču pievienoÅ”anai (kopā ar kontrolieri), piemēram:

  • skeneri;
  • lentes diskdziņi (straumi);
  • optiskie diskdziņi;
  • diskdziņi un citas ierÄ«ces.

Sākotnēji SCSI sauca par Shugart Associates System Interface (SASI), taču standartu komiteja neapstiprināja nosaukumu uzņēmuma vārdā, un pēc dienas ilgas prāta vētras radās nosaukums Small Computer Systems Interface (SCSI). SCSI "tēvs" Lerijs BuÅ”ers bija iecerējis saÄ«sinājumu izrunāt "seksÄ«gs", bet Dal Alans Es lasÄ«ju ā€œscuzzyā€ (ā€œpastāsti manā€). Pēc tam ā€œskaziā€ izruna tika stingri noteikta Å”im standartam.

SCSI terminoloģijā savienotās ierīces iedala divos veidos:

  • iniciatori;
  • mērÄ·a ierÄ«ces.

Iniciators nosūta komandu mērķa ierīcei, kas pēc tam nosūta atbildi iniciatoram. Iniciatori un mērķi ir savienoti ar kopēju SCSI kopni, kuras joslas platums SCSI-1 standartā ir 5 MB/s.

Izmantotā ā€œkopējās kopnesā€ topoloÄ£ija nosaka vairākus ierobežojumus:

  • Kopnes galos ir nepiecieÅ”amas Ä«paÅ”as ierÄ«ces - terminatori;
  • Kopnes joslas platums tiek dalÄ«ts starp visām ierÄ«cēm;
  • Maksimālais vienlaikus pievienoto ierīču skaits ir ierobežots.

Ievads SSD. 2. daļa. Interfeiss

Kopnē esoŔās ierÄ«ces identificē ar unikālu numuru, ko sauc SCSI mērÄ·a ID. Katru SCSI vienÄ«bu sistēmā attēlo vismaz viena loÄ£iska ierÄ«ce, kurai fiziskajā ierÄ«cē tiek izmantots unikāls numurs LoÄ£iskās vienÄ«bas numurs (LUN).

Ievads SSD. 2. daļa. Interfeiss
SCSI komandas tiek nosūtītas kā komandu apraksta bloki (Command Descriptor Block, CDB), kas sastāv no darbības koda un komandas parametriem. Standarts apraksta vairāk nekā 200 komandas, kas iedalītas četrās kategorijās:

  • saistoÅ”s - ierÄ«cei ir jāatbalsta;
  • fakultatÄ«vs - var Ä«stenot;
  • Konkrēts pārdevējam - izmanto konkrēts ražotājs;
  • Novecojis - novecojuÅ”as komandas.

No daudzajām komandām tikai trīs no tām ir obligātas ierīcēm:

  • TESTA IERÄŖCÄŖBA GATAVS ā€” ierÄ«ces gatavÄ«bas pārbaude;
  • PIEPRASÄŖT SAJĒMU ā€” pieprasa iepriekŔējās komandas kļūdas kodu;
  • PASÅŖTÄŖJUMU ā€” pieprasÄ«jums par ierÄ«ces pamata raksturlielumiem.

Pēc komandas saņemÅ”anas un izpildes mērÄ·a ierÄ«ce nosÅ«ta iniciatoram statusa kodu, kas apraksta izpildes rezultātu.

Turpmāka SCSI uzlaboÅ”ana (SCSI-2 un Ultra SCSI specifikācijas) paplaÅ”ināja izmantoto komandu sarakstu un palielināja pievienoto ierīču skaitu lÄ«dz 16, bet datu apmaiņas ātrumu kopnē lÄ«dz 640 MB/s. Tā kā SCSI ir paralēla saskarne, datu apmaiņas frekvences palielināŔana bija saistÄ«ta ar maksimālā kabeļa garuma samazināŔanos un radÄ«ja neērtÄ«bas lietoÅ”anā.

Sākot ar Ultra-3 SCSI standartu, parādÄ«jās ā€œkarstās pievienoÅ”anasā€ atbalsts - ierīču pievienoÅ”ana, kamēr ir ieslēgta baroÅ”ana.

Par pirmo zināmo SSD disku ar SCSI interfeisu var uzskatīt M-Systems FFD-350, kas tika izlaists 1995. gadā. Diskam bija augstas izmaksas un tas nebija plaŔi izplatīts.

PaÅ”laik paralēlais SCSI nav populārs diska savienojuma interfeiss, taču komandu kopa joprojām tiek aktÄ«vi izmantota USB un SAS saskarnēs.

ATA/PATA

Ievads SSD. 2. daļa. Interfeiss
interfeiss ATA (Advanced Technology Attachment), kas pazÄ«stams arÄ« kā PATA (Parallel ATA) izstrādāja Western Digital 1986. gadā. IDE standarta mārketinga nosaukums (Integrated Drive Electronics) uzsvēra svarÄ«gu jauninājumu: piedziņas kontrolleris tika iebÅ«vēts diskdzinÄ«, nevis uz atseviŔķas paplaÅ”ināŔanas plates.

Lēmums ievietot kontrolieri diskdzinÄ« vienlaikus atrisināja vairākas problēmas. Pirmkārt, attālums no piedziņas lÄ«dz regulatoram ir samazinājies, kas pozitÄ«vi ietekmē piedziņas Ä«paŔības. Otrkārt, iebÅ«vētais kontrolieris tika ā€œpielāgotsā€ tikai noteikta veida piedziņai un attiecÄ«gi bija lētāks.

Ievads SSD. 2. daļa. Interfeiss
ATA, tāpat kā SCSI, izmanto paralēlo I/O metodi, kas ietekmē izmantotos kabeļus. Lai savienotu diskus, izmantojot IDE interfeisu, ir nepiecieÅ”ami 40 vadu kabeļi, ko sauc arÄ« par kabeļiem. Jaunākās specifikācijās izmanto 80 vadu cilpas: vairāk nekā puse no tām ir iemesls, lai samazinātu traucējumus augstās frekvencēs.

ATA kabelim ir no diviem lÄ«dz četriem savienotājiem, no kuriem viens ir savienots ar mātesplati, bet pārējie - ar diskdziņiem. Savienojot divas ierÄ«ces ar vienu kabeli, viena no tām ir jākonfigurē kā Meistars, un otrais - kā Vergs. TreÅ”o ierÄ«ci var pievienot tikai lasÄ«Å”anas režīmā.

Ievads SSD. 2. daļa. Interfeiss
Džempera pozīcija nosaka konkrētas ierīces lomu. Termini Master un Slave attiecībā uz ierīcēm nav pilnīgi pareizi, jo attiecībā uz kontrolieri visas pievienotās ierīces ir vergu ierīces.

ÄŖpaÅ”s jauninājums ATA-3 ir izskats PaÅ”kontrole, AnalÄ«zes un ziņoÅ”anas tehnoloÄ£ija (S.M.A.R.T.). Pieci uzņēmumi (IBM, Seagate, Quantum, Conner un Western Digital) ir apvienojuÅ”i spēkus un standartizējuÅ”i tehnoloÄ£iju disku veselÄ«bas novērtÄ“Å”anai.

Atbalsts cietvielu diskdziņiem parādÄ«jās standarta ceturtajā versijā, kas tika izlaista 1998. gadā. Å Ä« standarta versija nodroÅ”ināja datu pārraides ātrumu lÄ«dz 33.3 MB/s.

Standarts izvirza stingras prasības ATA kabeļiem:

  • vilcienam jābÅ«t plakanam;
  • maksimālais vilciena garums ir 18 collas (45.7 centimetri).

ÄŖsais un platais vilciens bija neērts un traucēja dzesÄ“Å”anai. Ar katru nākamo standarta versiju palielināt pārraides frekvenci kļuva arvien grÅ«tāk, un ATA-7 radikāli atrisināja problēmu: paralēlais interfeiss tika aizstāts ar seriālo. Pēc tam ATA ieguva vārdu Parallel un kļuva pazÄ«stams kā PATA, un standarta septÄ«tā versija saņēma citu nosaukumu - Serial ATA. SATA versiju numerācija sākās no viena.

SATA

Ievads SSD. 2. daļa. Interfeiss
Serial ATA (SATA) standarts tika ieviests 7. gada 2003. janvārÄ« un risināja tā priekÅ”gājēja problēmas ar Ŕādām izmaiņām:

  • paralēlais ports ir aizstāts ar seriālo;
  • platais 80 vadu kabelis tiek aizstāts ar 7 vadu kabeli;
  • "Kopējās kopnes" topoloÄ£ija ir aizstāta ar "punkts-punkts" savienojumu.

Neskatoties uz to, ka SATA 1.0 standarts (SATA/150, 150 MB/s) bija nedaudz ātrāks par ATA-6 (UltraDMA/130, 130 MB/s), pāreja uz seriālo datu apmaiņas metodi ā€œsagatavoja augsniā€ palielināti ātrumi

SeÅ”padsmit signāla lÄ«nijas datu pārraidÄ«Å”anai ATA tika aizstātas ar diviem vÄ«tā pāriem: viena pārraidÄ«Å”anai, otra saņemÅ”anai. SATA savienotāji ir izstrādāti tā, lai tie bÅ«tu izturÄ«gāki pret vairākiem atkārtotiem savienojumiem, un SATA 1.0 specifikācija padarÄ«ja iespējamu Hot Plug.

Dažas disku tapas ir Ä«sākas nekā visas pārējās. Tas tiek darÄ«ts, lai atbalstÄ«tu Hot Swap. Nomaiņas procesa laikā ierÄ«ce ā€œpazaudēā€ un ā€œatrodā€ lÄ«nijas iepriekÅ” noteiktā secÄ«bā.

Nedaudz vairāk kā gadu vēlāk, 2004. gada aprīlī, tika izlaista otrā SATA specifikācijas versija. Papildus paātrinājumam līdz 3 Gbit/s SATA 2.0 ieviesa tehnoloģiju Vietējā komandu rinda (NCQ). Ierīces ar NCQ atbalstu spēj patstāvīgi organizēt saņemto komandu izpildes secību, lai sasniegtu maksimālu veiktspēju.

Ievads SSD. 2. daļa. Interfeiss
Nākamo trÄ«s gadu laikā SATA darba grupa strādāja, lai uzlabotu esoÅ”o specifikāciju, un versijā 2.6 parādÄ«jās kompaktie Slimline un micro SATA (uSATA) savienotāji. Å ie savienotāji ir mazāka oriÄ£inālā SATA savienotāja versija un ir paredzēti optiskajiem diskdziņiem un mazajiem klēpjdatoru diskdziņiem.

Lai gan otrās paaudzes SATA bija pietiekami daudz joslas platuma cietajiem diskiem, SSD bija nepiecieŔams vairāk. 2009. gada maijā tika izlaista treŔā SATA specifikācijas versija ar palielinātu joslas platumu līdz 6 Gbit/s.

Ievads SSD. 2. daļa. Interfeiss
SATA 3.1 izdevumā Ä«paÅ”a uzmanÄ«ba tika pievērsta cietvielu diskdziņiem. Ir parādÄ«jies Mini-SATA (mSATA) savienotājs, kas paredzēts cietvielu disku savienoÅ”anai klēpjdatoros. AtŔķirÄ«bā no Slimline un uSATA, jaunais savienotājs bija lÄ«dzÄ«gs PCIe Mini, lai gan tas nebija elektriski savietojams ar PCIe. Papildus jaunajam savienotājam SATA 3.1 lepojās ar iespēju rindot TRIM komandas ar lasÄ«Å”anas un rakstÄ«Å”anas komandām.

Komanda TRIM informē SSD par datu blokiem, kas nenes lietderÄ«go slodzi. Pirms SATA 3.1, izpildot Å”o komandu, keÅ”atmiņas tiks izskalotas un I/O darbÄ«ba tiktu apturēta, kam sekos komanda TRIM. Å Ä« pieeja pasliktināja diska veiktspēju dzÄ“Å”anas darbÄ«bu laikā.

SATA specifikācija nespēja sekot lÄ«dzi cietvielu diskdziņu piekļuves ātruma straujajam pieaugumam, kā rezultātā 2013. gadā SATA 3.2 standartā tika pieņemts kompromiss ar nosaukumu SATA Express. Tā vietā, lai vēlreiz dubultotu SATA joslas platumu, izstrādātāji izmantoja plaÅ”i izmantoto PCIe kopni, kuras ātrums pārsniedz 6 Gbps. Diskdziņi, kas atbalsta SATA Express, ir ieguvuÅ”i savu formas faktoru, ko sauc par M.2.

SAS

Ievads SSD. 2. daļa. Interfeiss
ArÄ« SCSI standarts, ā€œkonkurējotā€ ar ATA, nestāvēja uz vietas un tikai gadu pēc Serial ATA parādÄ«Å”anās, 2004. gadā, atdzima kā seriālais interfeiss. Jaunās saskarnes nosaukums ir Serial Attached SCSI (SEDGE).

Neskatoties uz to, ka SAS mantoja SCSI komandu kopu, izmaiņas bija nozīmīgas:

  • seriālais interfeiss;
  • 29 vadu strāvas kabelis;
  • punkts-punkts savienojums

Tika mantota arÄ« SCSI terminoloÄ£ija. Kontrolieris joprojām tiek saukts par iniciatoru, un pievienotās ierÄ«ces joprojām tiek sauktas par mērÄ·i. Visas mērÄ·a ierÄ«ces un iniciators veido SAS domēnu. SAS savienojuma caurlaidspēja nav atkarÄ«ga no ierīču skaita domēnā, jo katra ierÄ«ce izmanto savu Ä«paÅ”o kanālu.

Maksimālais vienlaicÄ«gi pieslēgto ierīču skaits SAS domēnā saskaņā ar specifikāciju pārsniedz 16 tÅ«kstoÅ”us, un SCSI ID vietā adresÄ“Å”anai tiek izmantots identifikators Vispasaules nosaukums (WWN).

WWN ir unikāls 16 baitus garÅ” identifikators, kas ir analogs SAS ierīču MAC adresei.

Ievads SSD. 2. daļa. Interfeiss
Neskatoties uz SAS un SATA savienotāju lÄ«dzÄ«bu, Å”ie standarti nav pilnÄ«bā savietojami. Tomēr SATA disku var savienot ar SAS savienotāju, bet ne otrādi. SaderÄ«ba starp SATA diskdziņiem un SAS domēnu tiek nodroÅ”ināta, izmantojot SATA tunelÄ“Å”anas protokolu (STP).

SAS-1 standarta pirmās versijas caurlaidspēja ir 3 Gbit/s, un modernākā SAS-4 Å”o rādÄ«tāju ir uzlabojusi 7 reizes: 22,5 Gbit/s.

PCIe

Ievads SSD. 2. daļa. Interfeiss
Peripheral Component Interconnect Express (PCI Express, PCIe) ir seriālais interfeiss datu pārsÅ«tÄ«Å”anai, kas parādÄ«jās 2002. gadā. Izstrādi uzsāka Intel, un pēc tam tas tika nodots Ä«paÅ”ai organizācijai - PCI Special Interest Group.

Seriālais PCIe interfeiss nebija izņēmums un kļuva par loÄ£isku paralēlo PCI turpinājumu, kas paredzēts paplaÅ”ināŔanas karÅ”u pievienoÅ”anai.

PCI Express bÅ«tiski atŔķiras no SATA un SAS. PCIe saskarnei ir mainÄ«gs joslu skaits. LÄ«niju skaits ir vienāds ar divu pakāpēm un svārstās no 1 lÄ«dz 16.

Termins "josla" PCIe neattiecas uz konkrētu signāla lÄ«niju, bet gan uz vienu pilna dupleksa sakaru kanālu, kas sastāv no Ŕādām signāla lÄ«nijām:

  • uzņemÅ”ana+ un uzņemÅ”ana-;
  • transmisija+ un transmisija-;
  • četri zemējuma vadÄ«tāji.

PCIe joslu skaits tieÅ”i ietekmē savienojuma maksimālo caurlaidspēju. MÅ«sdienÄ«gais PCI Express 4.0 standarts ļauj sasniegt 1.9 GB/s vienā lÄ«nijā un 31.5 GB/s, izmantojot 16 lÄ«nijas.

Ievads SSD. 2. daļa. Interfeiss
ApetÄ«te pēc cietvielu diskdziņiem aug ļoti ātri. Gan SATA, gan SAS nav laika palielināt savu joslas platumu, lai ā€œsekotu lÄ«dziā€ SSD, kā rezultātā parādÄ«jās SSD diskdziņi ar PCIe savienojumiem.

Lai gan PCIe pievienojumprogrammas kartes ir pieskrÅ«vētas, PCIe ir karstā maiņa. ÄŖsas PRSNT tapas (angļu valodā present - present) ļauj pārliecināties, vai karte ir pilnÄ«bā ievietota slotā.

Cietvielu diskus, kas savienoti, izmantojot PCIe, regulē atseviŔķs standarts NegaistoŔās atmiņas resursdatora kontrollera interfeisa specifikācija un tiek iemiesoti dažādos formas faktoros, bet par tiem mēs runāsim nākamajā daļā.

Attālinātie diskdziņi

Veidojot lielas datu noliktavas, radās nepiecieÅ”amÄ«ba pēc protokoliem, kas ļauj savienot diskus, kas atrodas ārpus servera. Pirmais risinājums Å”ajā jomā bija Interneta SCSI (iSCSI), ko 1998. gadā izstrādāja IBM un Cisco.

iSCSI protokola ideja ir vienkārÅ”a: SCSI komandas tiek ā€œiesaiņotasā€ TCP/IP paketēs un pārsÅ«tÄ«tas uz tÄ«klu. Neskatoties uz attālo savienojumu, klientiem tiek radÄ«ta ilÅ«zija, ka disks ir pievienots lokāli. Uz iSCSI balstÄ«tu uzglabāŔanas apgabalu tÄ«klu (SAN) var izveidot, izmantojot esoÅ”o tÄ«kla infrastruktÅ«ru. iSCSI izmantoÅ”ana ievērojami samazina SAN organizÄ“Å”anas izmaksas.

iSCSI ir ā€œpremiumā€ opcija - Å Ä·iedru kanāla protokols (FCP). SAN, kas izmanto FCP, ir izveidots uz Ä«paŔām optiskās Ŕķiedras sakaru lÄ«nijām. Å Ä« pieeja prasa papildu optiskā tÄ«kla aprÄ«kojumu, taču tā ir stabila un tai ir liela caurlaidspēja.

Ir daudz protokolu SCSI komandu nosÅ«tÄ«Å”anai datortÄ«klos. Tomēr ir tikai viens standarts, kas atrisina pretēju problēmu un ļauj nosÅ«tÄ«t IP paketes pa SCSI kopni - IP-over-SCSI.

Lielākā daļa SAN protokolu izmanto SCSI komandu kopu, lai pārvaldÄ«tu diskus, taču ir arÄ« izņēmumi, piemēram, vienkārÅ”i ATA, izmantojot Ethernet (AoE). AoE protokols nosÅ«ta ATA komandas Ethernet paketēs, bet diskdziņi sistēmā parādās kā SCSI.

Līdz ar NVM Express disku parādīŔanos iSCSI un FCP protokoli vairs neatbilst strauji augoŔajām SSD prasībām. Parādījās divi risinājumi:

  • PCI Express kopnes pārvietoÅ”ana ārpus servera;
  • NVMe over Fabrics protokola izveide.

PCIe kopnes noņemÅ”ana ietver sarežģītas komutācijas iekārtas izveidi, bet nemaina protokolu.

NVMe over Fabrics protokols ir kļuvis par labu alternatīvu iSCSI un FCP. NVMe-oF izmanto optisko Ŕķiedru saiti un NVM Express instrukciju kopu.

DDR-T

Ievads SSD. 2. daļa. Interfeiss
Standarti iSCSI un NVMe-oF atrisina attālo disku savienoÅ”anas problēmu kā lokālos, taču Intel izvēlējās citu ceļu un novietoja vietējo disku pēc iespējas tuvāk procesoram. Izvēle kritās uz DIMM slotiem, kuros ir pievienota RAM. DDR4 kanāla maksimālais joslas platums ir 25 GB/s, kas ir ievērojami lielāks par PCIe kopnes ātrumu. Tā radās IntelĀ® Optaneā„¢ DC pastāvÄ«gās atmiņas SSD.

Tika izgudrots protokols, lai savienotu diskus ar DIMM slotiem DDR-T, fiziski un elektriski saderÄ«gs ar DDR4, taču ir nepiecieÅ”ams Ä«paÅ”s kontrolleris, kas redz atŔķirÄ«bu starp atmiņas karti un disku. Diskdziņa piekļuves ātrums ir lēnāks nekā RAM, bet ātrāks nekā NVMe.

DDR-T ir pieejams tikai ar IntelĀ® Cascade Lake procesoriem vai jaunākiem procesoriem.

Secinājums

GandrÄ«z visas saskarnes ir nogājuÅ”as garu ceļu no sērijas lÄ«dz paralēlām datu pārsÅ«tÄ«Å”anas metodēm. SSD ātrums strauji pieaug; vēl vakar SSD bija jaunums, bet Å”odien NVMe vairs Ä«paÅ”i nepārsteidz.

Mūsu laboratorijā Selectel Lab varat pats pārbaudīt SSD un NVMe diskus.

Aptaujā var piedalīties tikai reģistrēti lietotāji. Ielogoties, lūdzu.

Vai NVMe diskdziņi tuvākajā nākotnē aizstās klasiskos SSD?

  • 55.5%Jā 100

  • 44.4%Nr.80

Nobalsoja 180 lietotāji. 28 lietotāji atturējās.

Avots: www.habr.com

Pievieno komentāru