so1 suport de curs ver.7

Upload: georgiana-emanuela-vian

Post on 07-Jul-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 SO1 Suport de Curs Ver.7

    1/87

    1  CONFIGURAȚIA HARDWARE A SISTEMELOR DE CALCUL ......3 

    1.1  Magistrala PCI (Peripheral Component Interconnect) Express .....3 1.1.1  Informaţia de configurare .......................................................5 1.1.2  Identificarea dispozitivelor .....................................................6 1.1.3   Nivelul fizic ............................................................................7 1.1.4   Nivelul legătură de date .......................................................10 1.1.5   Nivelul de tranzacţie ............................................................11 

    1.2  SCSI şi SAS ................................................................................12 1.2.1

     

    Prezentare generală SCSI .....................................................12 

    1.2.2  Termeni SCSI și SAS ...........................................................13 1.2.3  Exemplu de lucru SCSI ........................................................15 1.2.4  Exemplu de lucru SAS .........................................................17 

    1.3  ATA şi SATA ................................................................................20 1.3.1  Principiul de funcţionare ATA ..............................................20 1.3.2   Nivelurile interfeţei SATA ...................................................23 

    1.4  Lab 2.A: Instalarea Hyper-V în Windows 10 Pro ........................23 1.4.1  Etapa I. Instalarea Hyper-V ..................................................24 1.4.2  Etapa II. Configurarea Hyper-V ...........................................24 

    1.5 

    Lab 2.B: Instalarea unei mașini virtuale cu Centos 7.2 în Hyper-V  24 1.5.1  Etapa I. Instalarea Centos 7.2 ...............................................25 1.5.2  Etapa IV. Instalarea unui server și client Centos 7.2 ............26 

    1.6  Lab 2.C. Instalarea KVM în Ubuntu ............................................27 1.6.1  Etapa I. Instalarea KVM ......................................................28 1.6.2  Etapa II. Configurarea KVM cu Virt Machine Manager  .....28 

    1.7  Lab 2.D: Instalarea unei mașini virtuale cu Centos 7.2 în UbuntuKVM  29 

    1.7.1  Etapa I. Instalarea Centos 7.2 ...............................................29 1.7.2  Etapa II. Clonarea unei mașini virtuale existente.................31 

    1.8 

    Lab 2.E: Instalarea unei mașini virtuale cu Ubuntu în Hyper-V ..31 1.8.1  Etapa I. Instalarea Ubuntu Server 14.04 LTS.......................31 

    1.8.2  Etapa II. Instalarea unei mașini virtuale cu Ubuntu Desktop15.10  33 

    1.9  Lab 2.G: Aflarea detaliilor cu privire la configurația hardware amașinilor cu Linux ...................................................................................33 1.10  Aplicații și întrebări......................................................................40 

    2  MECANISMUL DE STOCARE PERSISTENTĂ A DATELOR ........41 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    2/87

    2.1  Structura discului rigid .................................................................42 2.2  Formatarea discului ......................................................................44 

    2.2.1  Formatarea de nivel inferior .................................................45 2.2.2  Partiționarea .........................................................................47 2.2.3  Partiționarea MBR/MSDOS ................................................47 2.2.4  Tabela de partiţii cu identificatori unici globali ...................50 2.2.1  Scrierea unui sistem de fișiere..............................................54 

    2.3  Lab 3.A: Partiționarea discurilor în linux ....................................54 2.3.1  Etapa I. Partiționarea discurilor cu MBR .............................55 

    2.3.2 

    Etapa II. Partiționarea discurilor cu GPT .............................55 

    2.4  Lab 3.B: Partiționarea discurilor în Windows ..............................56 2.5  Cofigurații RAID .........................................................................56 2.6  Lab 3.C: Instalarea sistemelor Linux într-o configurație RAIDsoftware ....................................................................................................65 2.7  Lab 3.D: Configurarea RAID software a discurilor adăugate dupăinstalare în Linux ......................................................................................65 2.8  Lab 3.E: Configurații RAID în sistemele Windows.....................65 2.9  Aplicații și întrebări......................................................................65 

    3  INIȚIALIZAREA SISTEMULUI DE OPERARE ..............................67 

    3.1  BIOS .............................................................................................67 3.1.1  Procesul de inițializare a sistemului .....................................68 3.1.2  Limitările BIOS-ului ............................................................69 

    3.2  UEFI .............................................................................................69 3.2.1  Procesul de inițializare a sistemului .....................................70 3.2.2  Configuraţia firmware ..........................................................71 

    3.3  Încărcătorul de sistem ..................................................................71 3.3.1  Anatomia unui încărcător de sistem .....................................72 

    3.4  Aplicații și întrebări......................................................................72 

    Comunicații în rețea .............................................................................73 

    5  Dispozitive de stocare persistentă accesate prin rețea .........................73 

    5.1  DAS (Direct Attached Storage) ....................................................74 5.2   NAS (Network Attached Storage) ................................................75 

    5.2.1  SMB .....................................................................................76 5.2.2   NFS (Network File System) .................................................76 

    5.3  Lab 5.A: Configurarea NFS în sistemele Linux...........................76 5.4  Lab 5.B: Configurarea SMB în sistemele Linux (Samba) ...........77 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    3/87

    5.5  Lab 5.B: configurarea SMB în sistemele Windows Server (FileServer) 77 5.6  Lab 5.C: Configurarea NFS în sistemele Windows Server  ..........77 5.7  SAN (Storage Area Network) ......................................................77 5.8  FC (Fibre Channel) ......................................................................78 

    5.8.1  Topologia FC ........................................................................78 5.8.2  Controlul accesului...............................................................80 5.8.3  Arhitectura FC ......................................................................82 

    5.9  iSCSI ............................................................................................84 

    5.10 

    Lab 5.E: Configurarea iSCSI în sistemele Linux.........................86 

    5.11  Lab 5.F: configurarea iSCSI în sistemele Windows Server  .........86 

    1 CONFIGURAȚIA HARDWARE ASISTEMELOR DE CALCUL

    1.1 Magistrala PCI (Peripheral ComponentInterconnect) Express

    PCIe este o conexiune serială care operează mai degrabă ca o reţea și nu camagistrală. În loc să folosească o singură magistrală paralelă ca suport pentrutransferul de date între dispozitive, PCIe foloseşte un comutator (switch) carecontrolează câteva conexiuni seriale punct-la-punct (vezi Fig. 1). Aceste conexiuni pleacă din comutator direct la dispozitive. Fiecare dispozitiv are propria conexiunededicată, astfel încât lăţimea de bandă nu mai este partajată între dispozitive. La pornirea calculatorului, PCIe detectează dispozitivele prezente pe placa de bază, apoi

    identifică legăturile dintre ele, creând o hartă de trafic şi negociind lăţimea de bandăa fiecărei legături. Procesul de identificare a dispozitivelor şi conexiunilor foloseşteacelaşi protocol ca PCI, aşadar PCIe nu necesită modificări ale sistemului de operare.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    4/87

      Fig. 1 Comutatorul oferă comunicaţii punct -la-punct între diferite dispozitive.

    Arhitectura PCIe, structurată pe niveluri, este reprezentată în Fig. 2. Nivelul de

    configurare asigură compatibilitatea cu modul de adresare PCI şi mecanismul deconfigurare definit în specificaţiile PCI Plug-and-Play. Păstrarea compatibilității cuPCI înseamnă că nu sunt necesare modificări la nivelul aplicaţiilor sau driverelor dedispozitiv. Nivelul software generează cereri de citire şi scriere care sunt transportatela dispozitive prin intermediul nivelului de tranzacţie. Nivelul de tranzacție foloseșteun protocol bazat pe pachete.

     Fig. 2. Arhitectura PCIe

  • 8/18/2019 SO1 Suport de Curs Ver.7

    5/87

    Pentru un transfer cât mai eficient, nivelul legăturii de date adaugă acestor pachetenumere de secvenţă şi sume de verificare (coduri CRC). Nivelul fizic constă dintr -un canal serial, dual, im plementat ca o pereche de transmisie şi una de recepţie. 

    1.1.1 Informaţia de configurare 

    Fiecare dispozitiv PCI are un spaţiu de configurare  de 256 de octeţi. Formatul primilor 64 de octeţi este definit de specificaţiile PCI. Această zonă reprezintăantetul de configurare al dispozitivului. Restul octeţilor rămân la discreţia

     producătorului şi de obicei sunt folosiţi pentru schimbul de informaţie întredispozitiv şi driverul de dispozitiv. 

    Specificaţiile definesc două formate de antet, numite tipul 0 şi 1. Tipul 1 este definit pentru punţile de legătură între două magistrale PCI. Tipul 0 este utilizat de toatecelelalte dispozitive. Formatul antetului de tip 0 este prezentat în Fig. 3.

    Câmpurile din antet se mai numesc şi registre. De aceea le putem menționa  cudenumirile: registrul de identificare a dispozitivului, registrul de identificare a producătorului, registre pentru controlul funcţiilor şi detectarea stării dispozitivului,etc.. Nu toată informaţia din primii 64 de octeţi este obligatorie. Dacă nu sunt 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    6/87

    necesare dispozitivului, unele câmpuri pot fi iniţializate cu zero. Câmpurileobligatorii sunt marcate cu gri (identificatorul producătorului, identificatoruldispozitivului, registrul de comandă, registrul de stare, identificatorul de versiune,tipul de antet). Valorile din registrele PCI sunt date întotdeauna în format little-endian.

    Biţii 6 –  0 din câmpul Tip antet definesc formatul antetului de configuraţie: 0 sau 1.Bitul 7 indică dacă dispozitivul are o singură funcţie sau este multifuncţional(încorporează mai multe funcţii). 

    Identificatorul producătorului şi identificatorul dispozitivului specifică  producătorulşi tipul dispozitivului. Primul este atribuit de un consorţiu industrial (PCI SpecialInterest Group) pentru identificarea companiilor individuale, iar cel din urmă poatefi selectat liber de producător. De exemplu, toate dispozitivele Intel sunt etichetatecu acelaşi număr de producător, 0x8086. Împreună, cei doi identificatori formeazăsemnătura dispozitivului. Pentru o descriere mai exactă a interfeţelor generice pot fifolosite încă două registre adiţionale cu nume similare - producătorul subsistemuluişi identificatorul subsistemului. 

    Identificatorul de versiune reprezintă versiunea dispozitivului. Permite utilizatorilorsă selecteze versiuni îmbunătăţite de drivere de dispozitiv, în care au fost eliminatedisfuncţionalităţi hardware cunoscute sau în care au fost adăugate noi funcţionalităţi. 

    Codul de clasă, registru de 24 de biţi, este folosit în procesul de atribuire adispozitivului la diferite grupuri funcţionale şi este împărţit în două părţi. Primii 8 biţi indică clasa de bază (de exemplu, controler pentru dispozitive de stocare), iarurmătorii 16 biţi o subclasă a clasei de bază (de exemplu, controler SCSI).

    Registrul de comandă poate specifica anumite funcţii: activarea dispozitivului,activarea accesului la memoria dispozitivului, activarea funcţiei de master adispozitivului, activarea parităţii, activarea semnalării erorilor de sistem. 

    Registrul de stare păstrează informaţii de stare, cum ar fi frecvenţa de funcţionare(33 sau 66 MHz), etc..

    Cele şase adrese de bază, fiecare de 32 de biţi, sunt folosite la definirea adreselor învederea comunicaţiei între dispozitivul PCI şi restul sistemului. 

    1.1.2 Identificarea dispozitivelor

    Fiecare dispozitiv conectat la o magistrală PCI este identificat printr -o adresă unicăformată dintr -un set de trei numere:

  • 8/18/2019 SO1 Suport de Curs Ver.7

    7/87

       Numărul de magistrală, 8 biţi, este numărul magistralei la care este conectatdispozitivul; numerotarea începe de la 0. Specificaţiile PCI permit maxim256 de magistrale per sistem.

       Numărul de dispozitiv, 5 biţi, este un număr de identificare unic în cadrulunei magistrale. La o magistrală pot fi ataşate maxim 32 de dispozitive.Dispozitivele conectate la magistrale diferite pot avea acelaşi număr dedispozitiv.

       Numărul de funcţie, 3 biţi, este folosit pentru dispozitive cu mai multe unităţifuncţionale. De exemplu, o singură placă de reţea găzduieşte două interfeţe,caz în care interfeţele individuale sunt identificate prin numere de funcţie

    diferite. Standardul PCI defineşte un număr maxim de 8 unităţi funcţionale per dispozitiv.

    Specificaţiile PCI permit unui sistem să conţină până la 256 de magistrale, dardeoarece acest număr nu este suficient de mare pentru sistemele mari, Linuxfolosește noţiunea de domenii PCI. Fiecare domeniu PCI poate găzdui pănă la 256de magistrale. Fiecare magistrală găzduieşte până la 32 de dispozitive şi fiecaredispozitiv poate fi o placă multifuncţională cu maxim 8 funcţii. 

    1.1.3 Nivelul fizic

    Înainte de PCIe, toate magistralele şi sloturile de expansiune ale calculatoarelor personale foloseau transmisia paralelă. În comunicaţia paralelă, într -un singur ciclude ceas, sunt transferaţi mai mulţi biţi  în acelaşi timp, fiecare parcurgând firulelectric corespunzător. În comunicaţia serială, într-un ciclu de ceas este transferatnumai un singur bit. La început, comunicaţia paralelă era mai rapidă, deoarece cucât transmitem mai mulţi biţi odată cu atât obţinem viteze de transfer mai mari. Darcomunicaţia paralelă întâmpină câteva probleme care împiedică transmisiile săatingă rate mari de transfer. Cu cât ciclul de ceas este mai mic, cu atât efectulinterferenţei electromagnetice (câmpul electromagnetic creat în jurul unui fir inducecurent electric în firele adiacente, corupând informaţia transmisă) şi al întârzierii de propagare (este greu să obţinem pe placa de bază exact aceeaşi dimensiune pentrutoate firele, iar la rate mari de transfer, datele care parcurg firele mai scurte ajung primele și, în consecinţă, înainte de a începe procesarea datelor receptorul trebuie săaştepte sosirea tuturor biţilor) este mai pronunțat.

    Transmisia serială PCIe 

    Procesul de transmisie serială din PCIe este mai simplu de implementat, deoarecesunt necesare mai puţine f ire. PCIe foloseşte patru fire - două pentru transmisie, două pentru recepţie  -, folosind o tehnică de evitare a interferenţelor electromagneticenumită transmisie diferenţială. Transmisia diferenţială se referă la faptul că acelaşi

  • 8/18/2019 SO1 Suport de Curs Ver.7

    8/87

    semnal este transmis pe două fire, al  doilea fir transmiţând semnalul oglindit(polaritate inversată) faţă de semnalul original.

    La receptor, semnalele sunt comparate. În mod ideal, ar trebui ca ele să fie egale, daroglindite. În realitate ele nu sunt egale, dar e uşor de dedus faptul că diferenţa dintrecele două semnale este zgomot. În acest fel, acest procedeu de transmisie uşureazăsarcina receptorului în operaţia sa de detecţie şi eliminare a zgomotului.  Pe lângăimunitate crescută la interferenţele electromagnetice, comunicaţia serială este imunăşi la întârzierile de propagare.O altă diferenţă majoră între cele două tipuri de comunicaţii constă din faptul că ocomunicaţie paralelă, de obicei, din cauza număr ului mare de fire necesar, are locîntr-un singur sens (half duplex - acelaşi fir este utilizat fie pentru transmisie, fie pentru recepţie). Comunicaţia serială poate avea loc mult mai uşor în ambele sensuriîn acelaşi timp (transmisia şi recepţia folosesc un set de fire separate), deoarece estenevoie de numai două fire în fiecare direcţie. În cazul transmisiei într -un singur sens,două dispozitive nu pot comunica în acelaşi timp, unul din ele ori transmite, orirecepţionează. În cazul transmisiei simultane în ambele sensuri, ambele dispozitive pot transmite în acelaşi timp. 

    Şi  totuşi, cum este posibil ca transmisia serială să fie mai rapidă? Răspunsul estefrecvența. În comunicația serială pot fi folosite frecvențe mai mari. O conexiune

     paralelă de 32 de biţi per ciclu de ceas, la frecvența de 33 MHz, atinge o rată maximăde 32/8 × 33 MHz, adică 133 MB/s. O conexiune serială PCIe de 2.5 GHz × 1 bit,atinge o rată de transfer de 250 MB/s. 

    Conexiunile PCIe

    Conexiunea PCIe se bazează pe noţiunea de „lane” (canal de comunicaţie), caredescrie o comunicaţie serială de 1 bit, de mar e viteză, cu transmisie simultană înambele sensuri. Ceasul de date este încorporat. Se transmite un bit per ciclu de ceasîn fiecare direcţie. Pentru a creşte lăţimea de bandă, lane-urile pot fi grupate. Deexemplu, când două dispozitive folosesc pentru conexiunea lor patru lane-uri,

  • 8/18/2019 SO1 Suport de Curs Ver.7

    9/87

    aceasta se consideră conexiune x4 şi va fi capabilă să atingă de 4 ori mai multă lăţimede bandă decât o singură conexiune, x1. Fig. 4 ilustrează două dispozitive conectate prin două lane-uri, altfel spus, o conexiune x2. Deşi, în teorie, poate fi grupat oricenumăr de lane-uri între 1 şi 32, cele mai întâlnite conexiuni sunt x4, x8 şi x16. Octeţiisunt distribuiţi între lane-uri ca în Fig. 9.

    PCIe 1.0 şi 2.0 folosesc sistemul de codare 8b/10b. Acest lucru înseamnă că fiecar eoctet de date este codificat şi transmis ca număr de 10   biţi. De obicei, din momentce un octet reprezintă un grup de opt biţi, o valoare dată  este convertită din biţi pesecundă (bps) în octeţi pe secundă (B/s)   prin împărţire la 8. Totuși, în cazul PCIe,din cauza codării 8b/10b, trebuie să împărţim la 10, nu la 8. Acesta este motivul pentru care cu o frecvenţă de 2.5 GHz sau  5 GHz, lăţimea de bandă pentru oconexiune x1 este de 250 MB/s, respectiv 500 MB/s, şi nu 312.5 MB/s, respectiv

  • 8/18/2019 SO1 Suport de Curs Ver.7

    10/87

    625 MB/s. Cei doi  biţi în plus se numesc „încărcare suplimentară” şi „mănâncă”20% din lăţimea de bandă a canalului. 

    PCIe 3.0 foloseşte un sistem de codare diferit, 128b/130b. După cum putem deduce,acest sistem transmite 130 de biţi pentru fiecare 128 de biţi de date, lucru care oferăo încărcare suplimentară mult mai mică. Din cauza acestei codări, PCIe 3.0 poateobţine rate de transfer duble faţă de PCIe 2.0 la o frecvenţă de ceas de 8 GHz în locde 10 GHz.

    PCIe 4.0 va folosi aceeaşi codare ca PCIe 3.0, dar va dubla frecvenţa de ceas, şi

    astfel, va dubla lăţimea de bandă disponibilă. 

    Versiune Codare Frecvenţă  Lăţime de bandă (x1) 1.0 8b/10b 2.5 Ghz 250 MB/s2.0 8b/10b 5 Ghz 500 MB/s3.0 128b/130b 8 Ghz 1 GB/s4.0 128b/130b 16 GHz 2 GB/s

    Aşa cum am menţionat, gruparea lane-urilor ne permite să multiplicăm lăţimea de bandă. Astfel, o conexiune x4 cu PCIe 3.0 are o bandă teoretică de 4 GB/s (1 GB/sx 4), în timp ce o conexiune x16 cu PCIe 3.0 va avea o lăţime de bandă de 16 GB/s.

    Sloturi şi carduri 

    Specificaţiile PCIe permit crearea unor sloturi de dimensiuni diferite, în funcţie denumăr ul de lane-uri conectate la slot. Mai mult, un adaptor care are nevoie de unnumăr de lane-uri mai mic decât dispune slotul poate fi inserat în orice slot PCIe. Deexemplu, putem instala o placă x1 în orice tip de slot PCIe. Astfel, dacă avem o placăde expansiune x4 şi placa  de bază nu dispune de  un slot PCIe x4, putem să ointroducem într-un slot x8 sau x16.

    În timpul iniţializării sistemului, numărul de lane-uri şi frecvenţa de operare estenegociată de doi agenţi (capetele conexiunii) pentru fiecare legătură PCIe. În acest

     proces nu este implicat niciun firmware și nici sistem de operare.

    1.1.4 Nivelul legătură de date 

    Rolul principal al acestui nivel este acela de a asigura transmisia eficientă a pachetelor de-a lungul legăturilor PCIe. Nivelul legătură de date este responsabil cuintegritatea datelor şi adaugă la pachetele primite de la nivelul de tranzacţie un numărde secvenţă şi o sumă de verificare.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    11/87

     

    În majoritatea cazurilor, transferul de date este iniţiat de nivelul de tranzacţie. Un protocol de control se asigură de faptul că pachetele sunt transmise numai atuncicând se ştie că la recepţie este disponibil un buffer necesar pentru primirea acestora.Acest lucru elimină necesitatea retransmiterii pachetelor şi, în consecinţă, legăturaeste utilizată mai eficient. Nivelul legătură de date va retransmite automat un pachetsemnalizat ca fiind corupt.

    1.1.5 Nivelul de tranzacţie 

     Nivelul de tranzacţie recepţionează cererile de citire/scriere de la nivelul software şicrează pachete de cerere transmisie. Toate cererile sunt implementate sub forma unortranzacţii divizate (permit unui iniţiator să efectueze o cerere pentru un transfer şi apoi să elibereze magistrala). Tranzacţiile sunt definite ca o serie de una sau maimulte transmisii de pachete necesare finalizării unui transfer de informaţie între unclient (requester) şi o sursă (completer). Unele pachete de cerere vor avea nevoie deun pachet de răspuns. De asemenea, nivelul de tranzacţie recepţionează pachete derăspuns de la nivelul de legătură de date şi le compară cu cererile originale primitede la nivelul software. Fiecare pachet are un identificator unic care permite niveluluide tranzacție să direcționeze pachetele de răspuns  la sursa corectă. Formatul pachetelor permite adresarea pe 32 şi 64 de biţi. Totodată, pachetele au atribute ce  pot fi folosite pentru rutarea optimă prin sistemul de I/O  („no-soop”, „relaxed-

    ordering” şi „priority”).

     Nivelul de tranzacţie recunoaşte patr u spaţii de adrese: cele trei spaţii de adrese PCI(memorie, I/O şi configuraţie), plus  un spaţiu de mesaje (Message Space).Specificațiile PCI 2.2 au introdus ca opțiune o metodă alternativă de propagare aîntreruperilor numită MSI (Message Signaled Inter rupt, întreruperi semnalate prinmesaje). La PCIe, MSI devine metoda principală de procesare a întreruperilor. În locde un semnal transmis fizic, PCIe scrie la o adresă rezervată de memorie un mesajcu un format special. Totodată, PCIe  foloseşte spaţiul de mesaje pentru a păstracompatibilitatea cu toate semnalele dinainte, cum ar fi întreruperi, cereri de gestiunea puterii consumate, reset-uri, ş.a.m.d.. 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    12/87

    1.2 SCSI şi SAS 

    1.2.1 Prezentare generală SCSI 

    În 1986, la apariţie, SCSI  (Small Computer System Interface) suporta lăţimi  de bandă de aproximativ 5 MB/s. De-a lungul anilor, standardul a suferit transformărisuccesive. Asemenea magistralei de sistem, SCSI este definită atât de lățimeamagistralei cât și de rata de ceas. Creșterea unuia din acești doi parametrii duce lacreșterea lățimii de bandă a magistralei SCSI. Lățimea magistralei este ori îngustă

    (narrow, 8 biți) ori largă (wide, 16 biți). Lățimea magistralei determină numărul deocteți de date care pot fi transmiși într -un ciclu de ceas. Lățimea de bandă determinăși numărul de dispozitive care poate fi conectat la o singură magistrală SCSI.Magistralele înguste puteau gestiona 8 dispozitive, iar magistralele largi, 16dispozitive. Cum un număr de dispozitiv este rezervat pentru controlerul SCSI,fiecare tip de magistrală putea conecta 7, respectiv 15 discuri.

    Prima implementare SCSI-1, avea o magistrală de 8 biți și o frecvență deceas de 5 MHz. Un octet de date transmis de 5 milioane de ori pe secundă înseamnă o lățime de bandă de 5 MB/s. De la SCSI-1 au fost folosite mai multe frecvențe deceas. Fast SCSI definea o frecvență de 10 MHz (generând o rată de transfer de 10MB/s). Apoi au fost definite și implementate Ultra SCSI (20 MHz), Ultra2 SCSI (40MHz), Ultra3 SCSI (80 MHz), Ultra 160 SCSI (magistrală largă la 160 MHz).

    Pentru a facilita apariția modificărilor, standardele SCSI au fost grupate încâteva niveluri.

    Definiţiile globale SCSI sunt specificate  în standardul SAM (SCSI ArchitecturalModel), în timp ce seturile de comenzi specifice diferitelor tipuri de dispozitive suntgrupate într-un nivel al seturilor de comenzi.  Nivelul seturilor de comenzi conținesetul principal de comenzi SCSI (SPC - SCSI Primary Commands), comun pentru

  • 8/18/2019 SO1 Suport de Curs Ver.7

    13/87

    toate dispozitivele, plus alte seturi de comenzi necesare fiecărui tip specific dedispozitiv. Al treilea nivel defineşte modul în care comenzile sunt mapate la unanumit protocol, de exemplu, SPI (SCSI Parallel Interface), FCP (Fiber ChannelProtocol) sau SAS (Serial Attached SCSI). În final, al patrulea nivel, defineşteinterconectările  prin care dispozitivele pot comunica unele cu altele folosind protocoalele de pe nivelurile superioare.

    Avantaje SCSI:  detaliile de nivel inferior au fost lăsate la discreția producătorilor de discuri;

    acest lucru a ascuns detaliile de implementare hardware față de software-ul

    de sistem şi a permis acomodarea rapidă cu noile dispozitive apărute.   spre deosebire de alte tehnologii (de exemplu IDE, devenit ulterior ATA)

    care permiteau conectarea unui singur sau a două discuri la o magistrală,SCSI gestiona 16 discuri pe o magistrală extinsă. 

    În sistemele SCSI, interfaţa magistralei SCSI cu magistrala de sistem (de exemplu,PCI) a calculatorului este asigurată de un HBA (Host Bus Adapter). Acest lucru areun avantaj major deoarece decuplează magistrala SCSI de magistrala de sistem și   pot avea loc tranzacţii  simultan atât pe magistrala de sistem cât şi pe magistralaSCSI.

    1.2.2 Termeni SCSI și SAS

    Unităţile de extensie  (expanders). Asemenea switch-urilor din reţelele decalculatoare, unitățile de extensie rutează cererile de conexiune şi apoi folosescaceste conexiuni la transmiterea cadrelor de date. Aşa cum reiese din figuraurmătoare, există două tipuri de unităţi de extensie - fanout şi edge. 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    14/87

    Un domeniu SAS   poate conţine numai o singură unitate de extensie fanout (FanoutExpander din figura de mai jos). Prin definiţie, un domeniu SAS are o structurăarborescentă, cu unitatea de extensie fanout ca rădăcină. Această unitate trebuie săţină minte toate adresele prezente în domeniu şi, în consecinţă, are nevoie de maimultă memorie. 

    Unităţile de extensie edge  (de margine) sunt dispozitive mai simple, care pot ficascadate pentru a crea mai multe posibilităţi de adresare. Acest tip de unitate de

    extensie are și un port folosit ca destinaţie implicită pentru cererile de conexiune pecare nu le poate transforma în adresă.

     Iniţiator. Dispozitivul care poate iniţia comenzi SCSI şi recepţiona răspunsuri. ÎnSCSI, iniţiatorii sunt dispozitive relativ simple care,  odată ce comanda a fosttransmisă, transferă controlul tranzacţiei dispozitivului ţintă. HBA-ul este inițiator.

    Ţintă. Dispozitivul cu rol de receptor pentru comenzi SCSI, acceptând / returnânddate şi furnizând informaţii legate de finalizarea tranzacţiei. În SCSI, dispoz itivulţintă este dispozitivul mai complex şi  acesta  preia controlul tranzacţiei odată cecomanda a fost recepţionată. El decide dacă trebuie să se deconecteze înainte de

  • 8/18/2019 SO1 Suport de Curs Ver.7

    15/87

    returnarea datelor, când să trimită datele citite sau când să preia de la iniţiator datelece trebuie scrise pe discuri. Harddisk-urile sunt ținte.

    Unitatea logică (Logical Unit) este o unitate (de ex. o partiție sau un volum logic) din dispozitivul ţintă care funcţionează ca sursă sau destinaţie   pentru date. O ţintă poate conține mai multe unităţi logice, identificate printr -un număr de unitate logică(LUN - Logical Unit Number); minim, o țintă trebuie să dispună de LUN 0.

     Nexus. Derivat din cuvântul latinesc care înseamnă legătură sau conexiune, un nexusdescrie relaţia dintre lucruri. În SCSI, memorarea reciprocă a adreselor dispozitivelor

    aflate în comunicație în vederea monitorizării desfășurării tranzacției reprezintă unnexus. Informația de nexus  permite unei ţinte să elibereze magistrala și să sereconecteze mai tărziu, atunci când are de transmis date, iar unui iniţiator  să ținăevidența țintelor cu care se află în comunicație.

     Identificator de port   (Port ID). O adresă unică dintr -un domeniu SCSI sau SAS pentru fiecare port. În SAS, adresa de 64 de biţi asociată unui port serveşte dreptidentificator de port. Un dispozitiv poate atribui aceeaşi adresă SAS mai multor porturi fizice pentru a permite gruparea lor într-un port de capacitate mai mare.

     Numele de dispozitiv. Pentru SAS este tot adresa SAS.

    WWN  (World-Wide Name). Un identificator unic de 8 sau 16 octeți. Dimensiunea șiformatul sunt determinate de cei mai semnificativi patru biți, denumiți  NAA(Network Address Authority). Ceilalți biți identifică compania (OUI) și o valoaredefinită de producător . Fiecare unitate logică (LUN) deţine de asemenea un WWN. 

    1.2.3 Exemplu de lucru SCSI

    În figura următoare este ilustrată o magistrală SCSI (magistrală paralelă, SCSI Bus)care leagă un singur iniţiator (SCSI HBA) de câteva dispozitive ţintă. Sistemul client(Client System) rulează o aplicaţie care la un moment dat are nevoie de date aflate pe un disc (țintă). Pentru a primi datele, clientul apelează driverul de dispozitiv SCSI.

    Driverul transmite la HBA o comandă (cerere), de -a lungul magistralei de sistem.HBA-ul are de fapt doar rol de punte între magistrala SCSI şi magistrala de sistem. 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    16/87

     Arbitrarea și selecția

    HBA-ul, cu rol de iniţiator, trebuie să folosească magistrala SCSI pentru a transmitecomanda. Deoarece magistrala este partajată (între mai multe ținte, reprezentate dediscuri), pentru a preveni preluarea controlului magistralei de mai mult de undispozitiv în acelaşi timp, este necesar un mecanism de arbitrare. Pentru a puteaselecta dispozitivul țintă, iniţiatorul trebuie să câştige el însuşi controlul magistralei.În acest scop, protocolul SCSI include o etapă de arbitrare şi o etapă de selecţie.Iniţiatorul foloseşte propriul identificator pentru arbitrare. Dacă iniţiatorul câştigăcontrolul magistralei, selectează ținta folosind identificatorul acesteia. De exemplu,identificatorul pentru fiecare dispozitiv SCSI este format, de obicei, numai din unuldin cele 16 posibilităţi şi este setat în hardware prin jumperi. Valori de identificator pot fi 7 pentru iniţiator şi 4 pentru ţintă. 

    Conexiune în progres 

    Odată ţinta selectată, atât ea cât şi iniţiatorul participă activ la tranzacţie şi se spunecă sunt conectate. Când dispozitivele se conectează, fiecare stochează (ține minte)identificatorul celuilalt dispozitiv în vederea unor referinţe ulterioare (acest lucru poartă numele de stabilire a unui nexus; un nexus reprezintă relaţia între iniţiator şiţintă). Nexus-ul este util pentru ţintă deoarece aceasta  poate alege să renunțe lamagistrală  pe durata prelucrării cererii şi să se reconecteze la iniţiator mai târziu.Pentru a face acest lucru, ținta trebuie să cunoască identificatorul iniţiatorului.Iniţiatorul are nevoie de nexus deoarece  mai multe ţinte se pot deconecta de la

  • 8/18/2019 SO1 Suport de Curs Ver.7

    17/87

    magistrală, ajungând în situația de a avea comenzi în aşteptare pentru mai multe ţinteîn acelaşi timp. Ulterior, când primeşte răspunsuri, foloseşte informaţiile de nexusca să ştie care ţintă a răspuns. 

    Odată stabilită o conexiune, ţinta preia controlul şi decide când să transfere datele pentru comenzile primite de la iniţiator. Din moment ce SCSI este o magistrală half -duplex (cu transmisie într-un singur sens), acest lucru înseamnă că este necesar unmecanism de handshaking  ( pentru ca iniţiatorul şi ţinta să preia pe rând magistrala).Magistrala rămâne dedicată pentru utilizarea celor două dispozitive până când ţintao eliberează. Deoarece magistrala este comună  tuturor dispozitivelor, acest lucru

    înseamnă că toate celelalte dispozitive vor trebui să aştepte până când conexiuneacurentă se încheie şi magistrala devine disponibilă. În timpul unei conexiuni întredouă dispozitive pot avea loc mai multe transferuri, dar până la urmă, ţinta se vadeconecta şi magistrala va fi disponibilă şi altor dispozitive. 

    Încheierea conexiunii 

    După ce HBA-ul a primit de la ţintă răspunsul cerut (datele citite de pe un LUN),informează sistemul client de faptul că a finalizat comanda. Acest lucru se face deobicei printr-o întrerupere adresată unui driver de dispozitiv. La rândul său, driverulde dispozitiv raportează aplicaţiei client că datele sunt disponibile în bufferulcorespunzător. Aplicaţia extrage datele, finalizând acea secvenţă de comandă. 

    1.2.4 Exemplu de lucru SAS

    Să considerăm topologia SAS din figura următoare.

    Spre deosebire de SCSI, SAS este o magistrală punct-la- punct care conectează direct două dispozitive. Punctele de conexiune se numesc porturi iar fiecare dispozitiv vaavea cel puţin unul, în timp ce unităţile de extensie şi HBA-urile vor avea mai multe.Un port poate consta dintr-un singur port fizic (PHY) (interfaţa electrică individuală

  • 8/18/2019 SO1 Suport de Curs Ver.7

    18/87

    la o legătură) sau mai multe. Un port care are numai un PHY se numeşte NarrowPort (port îngust), iar un port care dispune de mai multe, se numeşte Wide Port (portlarg). O legătură uneşte două PHY-uri unul de altul şi constă dintr -o pereche de firecu transmisie diferenţială, pentru a forma un canal de transmisie, şi o altă pereche defire cu transmisie diferențială, pentru a forma un canal de recepţie. Figura următoare,care prezintă un HBA cu mai multe PHY-uri, ilustrează noțiunile de porturi îngusteşi largi.

    Arbitrarea şi selecţia 

    La fel ca la SCSI, clientul transmite cererea la driver care, la rândul său, o transmite la HBA. HBA-ul nu trebuie să arbitreze accesul deoarece toate magistralele(legăturile) sunt acum punct la punct. Totuşi, pentru a obţine serviciul, HBA-ul tottrebuie să se conecteze la ţintă. În acest sens, trimite o cerere de conexiune careinclude adresa destinaţie. Adresa destinaţie este examinată de unitățile de extensie în vederea determinării portului pe care trebuie rutată comunicaţia. 

    Fiecărui port al unui dispozitiv SAS îi este atribuită o adresă SAS de 64 de biţi, iarcererile sunt direcţionate la un dispozitiv pe baza adresei sale. Această adresă esteatribuită din fabrică de producător   şi este stocată în hardware-ul sau firmware-uldispozitivului. Ca parte a secvenţei de resetare, dispozitivele raportează aceastăadresă unică vecinilor cu care are legături. Mai târziu, iniţiatorii execută o secvenţăde paşi, numită proces de descoperire,  pentru a citi informaţia din unităţile de

  • 8/18/2019 SO1 Suport de Curs Ver.7

    19/87

    extensie (expanders) şi a crea o listă cu toate adresele accesibile lor în sistem.Acestea sunt adresele folosite la selecția  dis pozitivului ţintă. Pentru a ști  cemagistrală trebuie accesată, HBA-ul are de asemenea nevoie de o hartă prin care sădetermine ce adresă corespunde cărei magistrale. Mecanismul de mapare  estespecific fiecărui producător .

    Stabilirea conexiunii 

    Odată  determinată magistrala  care duce către țintă, înainte de a putea avea loctransferul de date, între HBA şi dispozitivul destinaţie tre buie deschisă o conexiune.

    În acest sens, portul HBA transmite o cerere de conexiune sub forma unui cadruspecial. Acest cadru este rutat în funcţie de adresă şi în final ajunge la dispozitivuldestinaţie. La primirea cererii de conexiune, ţinta o acceptă sau o refuză printransmiterea unei primitive de răspuns. Această primitivă nu are adresă şi nu esterutată; pur şi simplu parcurge conexiunea stabilită de cadrele cererii de conexiune îndrumul lor între iniţiator şi ţintă. Dacă ţinta acceptă cererea de conexiune, fiecaredispozitiv de pe traseu recunoaşte faptul că conexiunea a fost complet stabilită şilegătura devine un circuit dedicat de comunicaţie între cele două dispozitive. 

    Conexiune în desfăşurare 

    Odată conexiunea stabilită, informaţia de nexus este stocată la fel ca la SCSI. Tot la

    fel ca la SCSI, ţinta preia controlul magistralei şi decide când să extragă datele caretrebuie scrise sau să transmită  datele citite. Pot fi transmise mai multe cadre înambele direcţii, chiar şi în acelaşi timp (operaţiile full-duplex reprezintă un avantajmajor pentru SAS), până când unul sau ambele dispozitive decide că e timpul săînchidă conexiunea. Închiderea conexiunii în protocolul SSP (Serial SCSI Protocol) presupune ca fiecare dispozitiv să indice  mai întâi că a terminat de utilizatconexiunea şi apoi să trimită o primitivă de închidere.

    Încheierea conexiunii 

    La fel ca la SCSI, când HBA-ul a primit de la ţintă răspunsul cerut (datele citite, deexemplu), informează clientul de finalizarea comenzii prin inte rmediul uneiîntreruperi.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    20/87

    1.3 ATA şi SATA1 

    Pentru a înţelege protocolul SATA  (Serial ATA) sunt necesare câtevalămuriri. Protocoalele ATA  (Advanced Technology Attachement) şi SATA sunt deobicei implementate în medii de lucru cu un singur utilizator. În consecinţă, suntoptimizate pentru cel mult două discuri în configuraţie master/slave, lucru care permite ca protocolul să fie simplu. 

    1.3.1Principiul de funcţionare ATA

     

    Standardul ATA permitea conectarea dispozitivelor de stocare la placa de bază prinintermediul unui cablu care avea 40 de fire paralele şi trei conectori (de obicei,conectorul albastru pentru placa de bază, iar conectorul negru şi gri pentru cele douăunităţi de stocare2).

    Pe cablu, unul din periferice trebuia să fie declarat master, celălalt slave. Conectorulde la extremitate (negru) era rezervat pentru master iar cel din mijloc (gri) pentruslave. La discurile IDE, un jumper aflat pe disc, numit CS (cable select) permitea

    definirea automată a perifericelor master şi slave cât timp această funcţionalitate erasuportată de BIOS. În ciuda nomenclaturii nefericite, ambele discuri puteau operaindependent odată sistemul inițializat, deși discul care opera în modul slave avea performanțe mai reduse. Totodată, numai dispozitivul master poate fi utilizat cadispozitiv de boot, dar se putea folosi dispozitivul master de pe fiecare canal. Fiecare

    1ATA este cunoscut şi sub denumirea de IDE (Integrated Drive Electronics) sau EIDE(Enhanced IDE) 

    2Standardul ATA a fost destinat iniţial pentru conectarea discurilor, totuşi o extensie numităATAPI (ATA Packet Interface) permite conectarea altor periferice de stocare. cum ar fiCD-ROM, DVD-ROM, etc.. 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    21/87

     placă de bază conținea două controlere ATA, la fiecare se putea atașa un cablu,formând câte un canal de transfer. În consecință, într-un sistem standard puteam aveamaxim două dispozitive de boot și un total de patru dispozitive ATA. Majoritateautilizatorilor conectau discul principal pe prima interfață  master și unitatea CD-ROM pe a doua, astfel încât ambele puteau fi folosite ca dispozitive de boot.

    Programarea transferurilor de date 

    Inițial, la apariția protocolului ATA, nivelul de aplicaţie iniţia un transfer prinscrierea unui set de registre aflat în interiorul dispozitivului ţintă (acest lucru avealoc prin intermediul procesorului). Setul de registr e se numește Task File. HBA-ulATA pasa pur şi simplu informațiile primite de la procesor direct la aceste registre,aşa cum se arată în figura de mai jos. Când registrul de comandă era actualizat,dispozitivul începea să execute cererea în funcţie de parametrii prezenți în alteregistre.

    Ulterior, cu intenţia de a da o definiție şi o structură proprie standardului SATA, s-afolosit o metodă descrisă într -o specificaţie separată, numită AHCI (Advanced HostController Interface). Cu AHCI, aplicaţiile creează o listă de comenzi şi o listă dedate pe care le citește/scrie într -o structură de memorie şi apoi HBA-ului i setransmite numai locaţia acestei structuri. HBA-ul extrage fiecare cadru, numit FIS(Frame Information Structure), deja formatat corespunzător, şi îl înaintează discului.La SATA, o copie separată registrelor Task file, numită Shadow task file, esteinclusă în HBA, iar software-ul accesează aceste registre în loc de registrele discului.

    Acest lucru permite host-ului să grupeze actualizările la registre în pachete mai marişi mai eficiente care sunt livrate discului la viteză mai mare. Folosind una din cele două metode de programare, comanda este livrată

    discului şi acesta o execută.

    Transmisia datelor3 

    În transmisia datelor poate fi folosit:

    3http://en.kioskea.net/contents/pc/ide-ata.php3 

    http://en.kioskea.net/contents/pc/ide-ata.php3http://en.kioskea.net/contents/pc/ide-ata.php3http://en.kioskea.net/contents/pc/ide-ata.php3http://en.kioskea.net/contents/pc/ide-ata.php3

  • 8/18/2019 SO1 Suport de Curs Ver.7

    22/87

       protocolul PIO (Programmed Input/Output). PIO  permite perifericelor săschimbe date cu memoria RAM prin intermediul comenzilor gestionatedirect de procesor. Totuşi, pentru transferuri mari de date acest lucru poatefolosi intens procesorul şi în consecinţă poate încetini tot sistemul; 

       protocolul DMA (Direct Memory Access). Tehnica DMA permitecalculatoarelor să elibereze procesorul de controlul transferului, permiţândfiecărui periferic să acceseze direct memoria. Protocolul DMA permitetransferul unui singur cuvânt (single word DMA - 2 octeţi pentru fiecaresesiune de transfer) sau transferul succesiv a mai multor cuvinte în fiecaresesiune de transfer (multi word DMA).

    Modul PIO Rata de transfer(Mb/s)

    Modul DMA Rata de transfer(Mb/s)

    Mode 0 3.3 0 (single word) 2.1Mode 1 5.2 1 (single word) 4.2Mode 2 8.3 2 (single word) 8.3Mode 3 11.1 0 (multi-word) 4.2Mode 4 16.7 1 (multi-word) 13.3

    2 (multi-word) 16.7

    Standardul ATA era bazat pe modul de transfer asincron multiplexat; altfel spus,

    transferul comenzilor şi datelor avea loc la viteza magistralei pe fiecare frontcrescător al semnalului de ceas şi nu puteau fi transmise în acelaşi timp comenzi şidate. Pentru a creşte rata de transfer a datelor, cum creşterea frecvenţei pe omagistrală paralelă nu este o soluţie, a fost introdusă tehnica Ultra DMA (UDMA) .UDMA folosea  pentru transferul de date atât frontul crescător cât şi frontuldescrescător (lucru care a crescut rata de transfer de la 16.6 Mb/s la 33.3 Mb/s). Mai mult, UDMA introducea coduri CRC pentru detecţia erorilor de transmisie.Diferitele moduri UDMA definesc frecvenţa transferurilor de date. 

    Modul UDMA Rata de transfer (Mb/s)UDMA 0 16.7UDMA 1 25.0UDMA 2 (Ultra-ATA/33) 33.3UDMA 3 44.4UDMA 4 (Ultra-ATA/66 66.7UDMA 5 (Ultra-ATA/100) 100UDMA 6 (Ultra-ATA/133) 133

    Odată cu introducerea UDMA 4, pentru a limita interferenţele între fire (crosstalk),a fost folosit un nou cablu. Acest tip de cablu adaugă 40 de fire (obținându -se untotal de 80 de fire) intercalate cu firele de date cu scopul de a le izola. În schimb, aufost păstrați aceeași conectori. Discurile au implementat numai UDMA 2, 4, 5, 6.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    23/87

     

    1.3.2 Nivelurile interfeţei SATA 

    SATA foloseşte conexiuni punct-la- punct dedicate între ţintă şi host. Interfața SATAeste structurată pe niveluri: aplicație, transport, legătură și fizic. Trebuie reținut căarhitectura definită de specificaţiile SATA este diferită de cea SAS. Nivelul deaplicaţie reprezintă interfaţa de programare pentru mediul de lucru SATA. Interfaţade programare reprezintă un set de registre cu rol de  păstrare a compatibilității 

    software cu ATA. Nivelul de transport crează  sau livrează cadrele de date. Înspecificaţiile SATA, cadrele de date sunt numite FIS. La primirea unui FIS, acestnivel decodifică FIS-ul şi raportează nivelului de aplicaţie posibilele erori. Nivelulde legătură gestionează aproape tot protocolul de legătură. În timpul transmisiei,acest nivel generează o sumă de verificare pentru fiecare cadru FIS, formateazăcadrul FIS pentru a reduce influența interferențelor electromagnetice şi generează primitive folosite în protocolul SATA. În timpul recepţiei sunt efectuate operaţiileinverse. În tim pul transmisiei şi recepţie,  nivelul fizic furnizează funcţiile detranceiver. Tot acest nivel este responsabil cu iniţializarea legăturii şi detecţiavitezei.

    1.4 Lab 2.A: Instalarea Hyper-V în Windows 10Pro

    Obiective  Instalarea Hyper-V.  Modificarea configurației Hyper -V.  Crearea unei mașini virtuale cu Centos 7.2.  Folosirea discului mașinii virtuale ca template pentru alte două.

    Cerințe hardware   Windows 10 Pro pe 64 de biți.  Un spațiu de 50 GB liber pe disc.  2 GB de memorie (de preferat cât mai mult).  Procesor care recunoaște extensiile de virtualizare (Intel VT sau AMD-V).

    Înainte de începerea instalării, reporniți calculatorul, intrați în BIOS/EFI și asigurați-vă că opțiunile  pentru virtualizare și protecția memoriei (Data Execution Prevention)sunt active.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    24/87

    1.4.1 Etapa I. Instalarea Hyper-V

    1.  Click dreapta pe logo-ul Windows, selectați Programs and Features,Turn Windows features on or off din meniul din stânga alferestrei care se deschide.

    2.  În fereastra Windows Features, bifați Hyper-V și apăsați OK.3.  Reporniți calculatorul. 

    1.4.2 Etapa II. Configurarea Hyper-V

    1.  Deschideți Hyper-V Manager  din secțiunea WindowsAdministrative Tools a meniului All Apps.

    2.  Selectați Virtual Switch Manager din meniul principal Action.3.  Creați un nou switch virtual de tip External: 

       Nume: External Switch   Asigurați-vă că la External network  este listată placa

    dumneavoastră de rețea. Dacă aveți  două plăci de rețea, putețiselecta placa de rețea dezactivată. Dacă o conectați și pe aceasta laInternet, mașinile virtuale vor putea accesa rețeaua separat față de

    calculator (gazdă).   Bifați Allow management operating system to share

    this network adapter.4.  Creați un nou switch virtual de tip Internal: 

       Nume: Private Switch   Bifați Private network 

    5.  Acceptați modificările.   Tot de la Action selectați Hyper-V Settings.

    6.  În cadrul secțiunii Server, aveți posibilitatea să modificați directoarelefolosite pentru stocarea fișierelor discurilor virtuale (Virtual Hard

    Disks) și cel al fișierelor de configurație a mașinilor virtuale (VirtualMachines).7.  Înainte să apăsați OK, parcurgeți și celelalte opțiuni prezente în fereastra

    Hyper-V Settings.

    1.5 Lab 2.B: Instalarea unei mașini virtuale cu

  • 8/18/2019 SO1 Suport de Curs Ver.7

    25/87

    Centos 7.2 în Hyper-V

    1.5.1 Etapa I. Instalarea Centos 7.2

    1.  Deschideți Hyper-V Manager. În secțiunea din stânga selectați numelecalculatorului.

    8.  Din meniul Action selectați New > Virtual Machine.2.  Urmați pașii ceruți pentru crearea unei mașini virtuale alegând următoarele

    o pțiuni:    Numiți mașina virtuală Centos 7.2 și doar rețineți locația implicită

    a discului virtual. Apăsați Next.  Păstrați opțiunea Generation 1. Apăsați Next.  În fereastra Assign Memory   păstrați de asemenea valorile

    implicite. Apăsați Next.

      În fereastra Configure Networking  alegeți ExternalSwitch. Apăsați Next.

      În fereastra Connect Virtual Hard Disk selectați Createa virtual hard disk. Păstrați numele și calea, modificațidimensiunea la 8 GB. Apăsați Next.

      Apăsați Finish.3.  Click dreapta pe numele mașinii virtuale din secțiunea Virtual

    Machines. Selectați Settings...4.  Click DVD Drive  în lista de componente hardware a mașinii virtuale.

    Bifați Image file  și selectați imaginea CentOS-7-x86_64-DVD-1511.iso. Acceptați modificările.

    5.  Click dreapta pe numele mașinii virtuale și selectați Connect...6.  Click butonul Start sau apelați la combinația de taste Ctrl+S.7.  Parcurgeți pașii unei instalări obișnuite. În fereastra INSTALLTION

    SUMMARY:  KDUMP: debifați Enable kdump. Apăsați Done.   NETWORK & HOST NAME: Activați conexiunea Ethernet

    (eth0). Presupunând că mașina virtuală primește dinamic adresede IP puteți verifica adresa de IP primită. Apăsați Done.

      DATE & TIME: selectați Europe/Bucharest, grafic sau derulândcăsuțele Region și City. Activați Network Time dacă nu este deja activat. Apăsați Done.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    26/87

      SECURITY POLICY: dezactivați Apply security policy.Apăsați Done.

      SOFTWARE SELECTION: selectați Server with GUI.Apăsați Done.

      INSTALLATION DESTINATION: observați că este selectat disculvirtual cu capacitatea de 8 GB. Apăsați Done.

    8.  Apăsați Begin Installation.9.  Selectați ROOT PASSWORD și alegeți o parolă. Aceasta este parola

    utilizatorului root  (echivalentul administratorului din sistemele

    Windows).10.  Selectați USER CREATION și alegeți un nume de utilizator și o parolă.11.  La sfârșit apăsați Reboot.12.  Înainte de intrarea în cont, veți fi interogat dacă acceptați licența. Apăsați

    1, 2 și c de două ori.13.  Actualizați sistemul de operare: 

      Deschideți un terminal folosind combinația de taste Ctrl+Alt+T.  În terminal introduceți comanda su –, introduceți parola și 

    observați că promptul a trecut din $ în #, ceea ce înseamnă că acumaveți drepturi de root.

     

    Actualizați sistemul de operare: yum -y update14. Opriți mașina virtuală, grafic sau introducând comanda shutdown –h

    now.15. Ștergeți mașina virtuală Centos 7.2. Click dreapta pe numele mașinii și 

    selectați Remove.

    1.5.2 Etapa IV. Instalarea unui server și client Centos 7.2 

    Discul mașinii virtuale create și șterse în etapa anterioară poate fi folosit ca template pentru alte mașini virtuale cu Centos 7.2. În această etapă creăm încă două mașini

    virtuale. Una destinată a fi server, cealaltă a fi client. Cele două mașini vor fi instalateidentic, numai numele este diferit.2.  Deschideți Hyper-V Manager.3.  Click dreapta pe numele calculatorului și alegeți New  > Virtual

    Machine.4.  Specify Name: centos-server. Apăsați Next.5.  Generation 1. Apăsați Next.6.  Assign Memory, cu cât mai multă cu atât mai bine, dar 1024 MB este

    suficient. Bifați Use Dynamic Memory for this virtualmachine. Apăsați Next.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    27/87

    7.  External Switch. Apăsați Next.8.  În fereastra Connect Virtual Disk, selectați Attach a virtual

    hard disk later și apăsați Next.9.  Apăsați Finish.10. Din meniul principal selectați Action și New > Hard Disk.11. Apăsați Next.12. Alegeți formatul discului: VHDX.13. Alegeți tipul discului Differencing.14. Specificați numele și locația: 

     

     Nume: centos-server.vhdx  Păstrați locația. 

    15.  În fereastra următoare selectați discul părinte: Centos 7.2. ApăsațiFinish.

    16. Click dreapta pe numele mașinii virtuale centos-server  și selectațiSettings...

    17. Selectați IDE Controller 0 și apăsați Add.18. Selectați Browse  și navigați către directorul în care se află centos-

    server.vhdx. Apăsați Open și OK.19. Porniți centos-server. Deschideți consola.

    20. 

    Puteți opri mașina virtuală.Pentru instalarea unui client cu Centos 7.2 urmați exact pașii menționați în acestlaborator , doar schimbați centos-server  cu centos-client. La sfârșitul acestuilaborator aveți două mașini virtuale care rulează Centos 7.2.

    1.6 Lab 2.C. Instalarea KVM în Ubuntu

    Obiective  Instalarea KVM.

     

    Configurarea KVM prin Virt Machine Manager.  Crearea unei mașini virtuale cu Centos 7.2.  Folosirea discului mașinii virtuale ca template pentru alte două.

    Cerințe hardware   Ubuntu Desktop pe 64 de biți.  Un spațiu de 50 GB liber pe disc.  2 GB de memorie (de preferat cât mai mult).  Procesor care recunoaște extensiile de virtualizare (Intel VT sau AMD-V).

  • 8/18/2019 SO1 Suport de Curs Ver.7

    28/87

    Înainte de începerea instalării, reporniți calculatorul, intrați în BIOS/EFI și asigurați-vă că opțiunile  pentru virtualizare și protecția memoriei (Data Execution Prevention)sunt active.

    1.6.1 Etapa I. Instalarea KVM

    1.  Deschideți un terminal folosind combinația de taste Ctrl+Alt+T. 2.  Verificați faptul că suportul de virtualizare este activat.

     

    Dacă comanda egrep -c '(vmx|svm)' /proc/cpuinfo afișează ceva în terminal înseamnă că suportul de virtualizare esteactivat.

    3.  Instalați KVM și aplicația Virt Machine Manager   sudo apt-get install qemu-kvm virt-manager

    libvirt-bin

    4.  Configurați o interfață de rețea ca punte pentru accesul mașinilor virtuale laInternet. Dacă aveți două plăci de rețea în calculator, puteți dedica una pentru mașinile virtuale. Dacă dispuneți numai de una, mașinile virtuale vor partaja interfața cu calculatorul.

      Comanda ip a afișează interfețele de rețea prezente în sistem. Nufolosiți interfața logică lo și nici virbr0 și virbr0-nic.

      sudo cp /etc/network/interfaces

    /etc/network/interfaces.orig

      Comanda sudo gedit /etc/network/interfaces deschide fișierul interfaces cu editorul de text gedit (gedit este asemănător notepad din Windows). Adăugați liniile de mai jos.Aveți grijă să modificați numele interfeței. În cazul de față, în locde enp2s0 folosiți numele interfeței dumneavoastră.

    auto br0iface br0 inet dhcp

    bridge_ports enp2s0bridge_stp offbridge_fd 0bridge_maxwait 0

    5.  Reporniți calculatorul.

    1.6.2 Etapa II. Configurarea KVM cu Virt Machine

  • 8/18/2019 SO1 Suport de Curs Ver.7

    29/87

    Manager

    1.  Apăsați logo-ul Ubuntu din stânga sus a ecranului și scrieți virt în căsuțade căutare.   Selectați Virtual Machine Manager.

    2.  Selectați fereastra Virtual Machine Manager. Din meniul global(bara superioară a ecranului), selectați Edit > Connection Details.

    3.  În fereastra Connection Details, selectați Virtual Networks șiapăsați butonul + din colțul stânga jos al ferestrei.

     

     Network Name: Internal. Apăsați Forward.  Debifați Enable IPv4 network address space

    definition. Apăsați Forward.  Lăsați bifat Isolated virtual network. Apăsați Finish.

    4.  Închideți fereastra Connection Details.5.  Selectați fereastra Virtual Machine Manager. Selectați Edit  >

    Preferences din meniul global.

       New VM: debifați Add sound device.  Parcurgeți și celelalte opțiuni și apăsați Close.

    1.7 Lab 2.D: Instalarea unei mașini virtuale cuCentos 7.2 în Ubuntu KVM

    1.7.1 Etapa I. Instalarea Centos 7.2

    1.  Selectați fereastra Virtual Machine Manager. Click dreapta pelocalhost (QEMU) și selectați New.

    2.  Păstrați Local install media (ISO image or CDROM) și apăsațiForward.

    3.  Sub Use ISO image, apăsați Browse și selectați calea către directorulîn care se află imaginea CentOS-7-x86_64-DVD-1511.iso. Ca să ajungeți îndirectorul Downloads trebuie să folosiți Browse Local din colțul dinstânga jos. Selectați imaginea și apăsați Open. Tot în această fereastră: 

      OS type: Linux   Version: Red Hat Enterprise Linux 7 (or later) 

    4.  În fereastra Choose Memory and CPU settings  păstrați opțiunileimplicite: 1024 MB RAM și 1 CPU. Apăsați Forward.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    30/87

    5.  Păstrați opțiune de  creare a unui disc cu dimensiunea de 8 GB. ApăsațiForward. Ignorați eroarea Storage parameter error. Închidețifereastra de eroare și apăsați iarăsi Forward. Imaginea se va afla îndirectorul personal al utilizatorului.

    6.  În fereastra Ready to begin the installation   bifațiCustomize configuration before install, derulațiAdvanced options și asigurați-vă că este selectat Host device ...(Bridge br0). Apăsați Finish.

    7.  În fereastra rhel7 Virtual Machine:

     

    Disk 1: derulați Advanced options și alegeți VirtIO caDiskbus. Apăsați Apply.

    8.  Apăsați Begin installation.9.  În fereastra INSTALLTION SUMMARY

      KDUMP: debifați Enable kdump. Apăsați Done.   NETWORK & HOST NAME: Activați conexiunea Ethernet

    (eth0). Presupunând că mașina virtuală primește dinamic adresede IP puteți verifica adresa de IP primită. Apăsați Done.

      DATE & TIME: selectați Europe/Bucharest grafic sau derulândcăsuțele Region și City. Activați Network Time dacă nu este

    deja activat. Apăsați Done.  SECURITY POLICY: dezactivați Apply security policy.

    Apăsați Done.

      SOFTWARE SELECTION: selectați Server with GUI.Apăsați Done.

      INSTALLATION DESTINATION: observați că este selectat disculvirtual cu capacitatea de 8 GB. Apăsați Done.

    10.  Apăsați Begin Installation.11.  Selectați ROOT PASSWORD și alegeți o parolă. Aceasta  este parola

    utilizatorului root  (echivalentul administratorului din sistemele

    Windows).12.  Selectați USER CREATION și alegeți un nume de utilizator și o parolă.13.  La sfârșit apăsați Reboot.14.  Înainte de intrarea în cont, veți fi interogat dacă acceptați Licența. Apăsați

    1, 2 și c de două ori.15.  Actualizați sistemul de operare: 

      Deschideți un terminal folosind combinația de taste Ctrl+Alt+T.  În terminal introduceți comanda su –, introduceți parola și 

    observați că promptul a trecut din $ în #, ceea ce înseamnă că acumaveți drepturi de root.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    31/87

      Actualizați sistemul de operare: yum -y update16.  Opriți mașina virtuală, grafic sau introducând comanda shutdown –h

    now.

    1.7.2 Etapa II. Clonarea unei mașini virtuale existente 

    1.  În fereastra Virtual Machine Manager  selectați numele mașiniivirtuale. Click dreapta și selectați Clone.

     

     Name: centos-server 

    2.  Apăsați Clone.

    Urmați aceeași pași pentru crearea unei alte clone numite centos-client. La sfârșit puteți șterge mașina inițială. Click dreapta pe rhel7, selectați Delete  și iarăși Delete. Dacă doriți să păstrați discul virtual debifați Delete associatedstorage files.

    1.8 Lab 2.E: Instalarea unei mașini virtuale cuUbuntu în Hyper-V

    1.8.1 Etapa I. Instalarea Ubuntu Server 14.04 LTS

    1.  Deschideți Hyper-V Manager. În secțiunea din stânga click dreapta penumele calculatorului și selectați New > Virtual Machine.

    2.  Urmați pașii ceruți pentru crearea unei mașini virtuale alegând următoareleopțiuni: 

     

     Numiți mașina virtuală Ubuntu 14.04 LTS și doar rețineți locațiaimplicită a discului virtual. Apăsați Next.

      Păstrați opțiunea Generation 2. Apăsați Next.  În fereastra Assign Memory   păstrați de asemenea valorile

    implicite. Apăsați Next.

      În fereastra Configure Networking  alegeți ExternalSwitch. Apăsați Next.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    32/87

      În fereastra Connect Virtual Hard Disk selectați Createa virtual hard disk. Păstrați numele și calea, modificațidimensiunea la 8 GB. Apăsați Next.

      Apăsați Finish.3.  Click dreapta pe numele mașinii virtuale din secțiunea Virtual

    Machines. Selectați Settings...4.  Click Security  din lista de componente hardware a mașinii virtuale.

    Debifați Enable Secure Boot. Click Apply.5.  Click SCSI Controller din lista de componente hardware a mașinii

    virtuale. Alegeți DVD Drive  și apăsați Add. Bifați Image file  șiselectați imaginea ubuntu-14.04.4-server-amd64.iso. Click Apply.

    6.  Click Firmware  din lista de componente hardware a mașinii virtuale.Selectați DVD Drive și apăsați Move Up  până devine prima opțiune de boot. Acceptați modificările. 

    7.  Închideți fereastra Settings.8.  Click dreapta pe numele mașinii virtuale și selectați Connect...9.  Click butonul Start sau apelați la combinația de taste Ctrl+S.10. Parcurgeți pașii unei instalări obișnuite:

      Acceptați limba folosită în timpul instalării ca fiind Engleza.

    Apăsați Enter.  În fereastra Select your location apăsați Enter.

      În ferestrele Configure the keyboard  păstrați  valorileimplicite.

      În fereastra Configure the network, puteți schimba numelesistemului sau lasați valoarea implicită și doar apăsați Enter.

      Specificați un nume de utilizator și parola acestuia. Rețineți căutilizatorul creat în timpul instalării este oarecum privilegiat, însensul că are posibilitatea să ruleze comenzi cu drept de root folosind comanda sudo.

     

     Nu criptați directorul utilizatorului.  Dacă în fereastra Configure the clock a fost detectată locația

    corectă, Europe/Bucharest înseamnă că mașina virtuală a reușit săse conecteze la Internet. Indiferent de rezultat, selectați Enter.

      În meniul de partiționare selectați Guided –  use entiredisk and set up LVM. La întrebarea Write the changesto disk and configure LVM selectați Yes. Apăsați Enter.La fel pentru întrebările referitoare la dimensiunea discului șiWrite the changes to disks? 

       Nu specificați niciun proxy. Apăsați Enter.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    33/87

      Păstrați No automatic updates. Apăsați Enter.  Selectați OpenSSH server  apăsând tasta Space. Apăsați

    Enter.11. După restart, intrați în sistem cu utilizatorul și parola configurate la instalare.12. Scrieți comanda sudo –i  pentru a obține drepturi de root.13. Actualizați sistemul de operare folsind comanda apt-get update &&

    apt-get upgrade && apt-get dist-upgrade.14. Reporniți sistemul: shutdown –r now.15. Opriți sistemul: shutdown –h now.

    1.8.2 Etapa II. Instalarea unei mașini virtuale cu UbuntuDesktop 15.10

    Creați o nouă mașină virtuală a cărei configurație  hardware este identică cu ceafolosită în Etapa I, numai că de această dată folosiți imaginea ubuntu-15.10-desktop-amd64.iso. Urmați pașii standard de instalare. Acceptați toate valorile implicite cuexcepția Keyboard layout  unde selectați English(US). Dacă la finalulinstalării mașina virtuală rămâne blocată fără posibilitatea de a se restarta singură ,apăsați Reset. După repornire, acceptați actualizarea sistemului. Parola cerută este

    cea a utilizatorului curent.

    1.9 Lab 2.G: Aflarea detaliilor cu privire laconfigurația hardware a mașinilor cu Linux 

    Porniți una din mașinile virtuale Ubuntu Desktop sau Centos și rulați comenzil e demai jos. Toate comenzile se rulează într -un terminal. În Ubuntu terminalul sedeschide prin combinația de taste Ctrl+Alt+T. În Centos clik pe Applications > Favorites > Terminal.

    Kernelul de Linux reprezintă dispozitivele PCI ca pseudo-dispozitive în sistemul defişiere sysfs:

    root@centos:~# ls -la /sys/bus/pci/devices/total 0drwxr-xr-x. 2 root root 0 Feb 28 12:55 .drwxr-xr-x. 5 root root 0 Feb 28 12:55 ..lrwxrwxrwx. 1 root root 0 Feb 28 12:55 0000:00:00.0 ->../../../devices/pci0000:00/0000:00:00.0lrwxrwxrwx. 1 root root 0 Feb 28 12:55 0000:00:01.0 ->../../../devices/pci0000:00/0000:00:01.0

  • 8/18/2019 SO1 Suport de Curs Ver.7

    34/87

    lrwxrwxrwx. 1 root root 0 Feb 28 12:55 0000:00:02.0 ->../../../devices/pci0000:00/0000:00:02.0

    Pentru o intrare ca

    lrwxrwxrwx 1 root root 0 Mar 27 13:27 0000:00:04.0 ->../../../devices/pci0000:00/0000:00:04.0

    numărul de dispozitiv 0000:00:04.0 este compus din: 

      0000  –   domeniul PCI (fiecare domeniu poate conţine până la 256 demagistrale PCI);

      04 –  numărul magistralei PCI la care este ataşat dispozitivul;  00 –  numărul de dispozitiv;  .0 –  numărul de funcţie al dispozitivului.

    Fișierele din directorul 0000:04:00.0 conțin informații cu privire la dispozitiv.

    root@centos:~# cd 0000:04:00.0root@centos:~# ls -latotal 0drwxr-xr-x. 4 root root 0 Feb 28 10:55 .drwxr-xr-x. 39 root root 0 Feb 28 12:55 ..-r--r--r--. 1 root root 4096 Feb 28 12:55 class-rw-r--r--. 1 root root 4096 Feb 28 10:55 config-r--r--r--. 1 root root 4096 Feb 28 10:55 device-r--r--r--. 1 root root 4096 Feb 28 10:55 vendor

    Unele informații fac parte din antetul standard de 64 de octeți al dispozitivelor PCI.Fiecare fişier conţine o informaţie unică, cum ar fi producătorul dispozitivului(vendor), clasa dispozitivului (class), identificatorul dispozitivului (device),informaţii despre întreruperile folosite sau alte resurse atribuite.  

    root@centos:~# cat vendor0x8086

    root@centos:~# cat device0x340broot@centos:~# cat class0x060400

    Pe lângă interogarea directă a fișierelor din sysfs, distribuţiile de linux  pun ladispoziție și un pachet de utilitare care pot interoga, configura şi actualiza informaţiadispozitivelor PCI. De exemplu, utilitarul lspci furnizează informaţii cu privire lamagistralele PCI prezente în sistem şi dispozitivele conectate la acestea.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    35/87

    Comparați rezultatul comenzii lspci afișat în mașina dumneavoastră virtuală culistingul de mai jos. Spre deosebire de diagrama structurii hardware a sistemelor din prezent, studiată de noi în primul curs, în diagrama structurii hardware de mai joso bservați că chipsetul este împărțit în două blocuri separate: North Bridge și SouthBridge. North Bridge-ul conectează dispozitivele de mare  viteză din sistem: procesor, memorie, placă video.  Magistrala care conectează  North Bridge-ul de procesor se numește FSB (Front Side Bus). South Bridge-ul conectează dispozitivelemai lente: sloturi PCI, magistrale PATA, SATA, USB, autio, etc.. În prezent,funcționalitățile North Bridge-ului au migrat către procesor: controlerul de memorieși controlerul video sunt integrate în procesor, iar procesoarele de ultimă generație

    încorporează chiar și un controler PCIe. Deși caracteristică pentru sistemele maivechi, platformele de virtualizare folosesc încă structura prezentată în diagrama demai jos  pentru descrierea hardware a mașinilor   virtuale. Așadar, încercați să văfamiliarizați cu termenii folosiți de lspci pentru descrierea diverselor componente.În special, rețineți termenul de Host Bridge pentru descrierea North Bridge-ului

  • 8/18/2019 SO1 Suport de Curs Ver.7

    36/87

    și termenul de PCI Bridge  pentru descrierea South Bridge-ului. Celelaltecomponente au o denumire intuitivă.

    http://www.via.com.tw/en/products/chipsets/k7-series/km400/

    root@centos:~# lspci00:00.0 Host bridge: VIA Technologies, Inc. VT8378 [KM400/A] ChipsetHost Bridge00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1Controller (rev 80)

  • 8/18/2019 SO1 Suport de Curs Ver.7

    37/87

    00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1Controller (rev 80)00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1Controller (rev 80)00:10.3 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 82)00:11.0 ISA bridge: VIA Technologies, Inc. VT8235 ISA Bridge00:11.1 IDE interface: VIA Technologies, Inc.VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)00:11.5 Multimedia audio controller: VIA Technologies, Inc.VT8233/A/8235/8237 AC97 Audio Controller (rev 50)00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II](rev 74)01:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS

    [Radeon 9550]01:00.1 Display controller: ATI Technologies Inc RV350 AS [Radeon9550] (Secondary)

    Comanda lspci  citeşte intrările din sysfs  şi decodifică identificatorii de producător şi dispozitiv folosind informaţia din /usr/share/hwdata/pci.ids. Acest fişier se modifică pe măsură ce sunt adăugaţi noi producători şidispozitive şi poate fi actualizat cu ajutorul utilitarului update-pciids. Dacă însistem este introdus un dispozitiv nou şi lspci  nu afişează detalii despre el,actualizaţi fişierul pci.ids la ultima variantă.

    root@centos:~# update-pciids% Total % Received % Xferd Average Speed Time Time Time

    CurrentDload Upload Total Spent Left

    Speed100 196k 100 196k 0 0 201k 0 --:--:-- --:--:-- --:--:-- 250kDone.

    Pentru o perspectivă ierarhică a dispozitivelor PCI prezente în sistem, lspci folosește opțiunea –t.

    root@centos:~# lspci -tv-[0000:00]-+-00.0 VIA Technologies, Inc. VT8378 [KM400/A] Chipset Host Bridge

    +-01.0-[0000:01]--+-00.0 ATI Technologies Inc RV350 AS [Radeon 9550]| \-00.1 ATI Technologies Inc RV350 AS [Radeon 9550] (Secondary)+-08.0 Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C++-09.0 Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C++-0a.0 Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C++-10.0 VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller+-10.1 VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller+-10.2 VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller+-10.3 VIA Technologies, Inc. USB 2.0+-11.0 VIA Technologies, Inc. VT8235 ISA Bridge+-11.1 VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master

    IDE+-11.5 VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller

  • 8/18/2019 SO1 Suport de Curs Ver.7

    38/87

      \-12.0 VIA Technologies, Inc. VT6102 [Rhine-II]

    Opţiunea -x afişează partea standard a spaţiului de configurare (primii 64 de octeţi),sub formă hexazecimală. 

    root@centos:~# lspci -x | head -1100:00.0 Host bridge: VIA Technologies, Inc. VT8378 [KM400/A]Chipset Host Bridge00: 06 11 05 32 06 00 30 22 00 00 00 06 00 08 00 0010: 08 00 00 b0 00 00 00 00 00 00 00 00 00 00 00 0020: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 18 81

    30: 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00

    În Linux, clasele de bază şi subclasele corespunzătoare lor sunt enumerate în fişierulpci_ids.h  din linux-headers  (tot aici se găsește și identificatorul producătorului, identificatorul dispozitivului, identificatorul producătorului desubsistem, identificatorul subsistemului)4.

    #define PCI_BASE_CLASS_STORAGE 0x01#define PCI_CLASS_STORAGE_SCSI 0x0100#define PCI_CLASS_STORAGE_IDE 0x0101#define PCI_CLASS_STORAGE_FLOPPY 0x0102

    #define PCI_BASE_CLASS_NETWORK 0x02#define PCI_CLASS_NETWORK_ETHERNET 0x0200#define PCI_CLASS_NETWORK_TOKEN_RING 0x0201#define PCI_CLASS_NETWORK_FDDI 0x0202

    Opțiunea -D afișează numărul complet de dispozitiv. 

    root@desktop:~# lspci -D0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8378 [KM400/A]Chipset Host Bridge

    Primul număr, 0000, reprezintă numărul de domeniu PCI. Al doilea număr, 00,reprezintă numărul de magistrală. Următoarele numere reprezintă  numărul de

    dispozitiv și numărul de funcție. 

    Opțiunea –nn afișează tipul de dispozitiv, de exemplu PCI Bridge [0604],identificatorul producătorului și identificatorul dispozitivului [1106:b198].

    root@desktop:~# lspci -nn

    4  În Centos trebuie instalat pachetul kernel-devel. Folosiți comanda yum –yinstall kernel-devel. Locația fișierului pci_ids.h  poate fi aflată cu find saulocate.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    39/87

    00:01.0 PCI bridge [0604]: VIA Technologies, Inc. VT8237/VX700 PCIBridge [1106:b198]

    Alte opțiuni utile ale lspci  sunt –k, care afișează driverele componentelor dinsistem, -v  și –vv  pentru detalii suplimentare. Mai multe detalii cu privire laopțiunile primite de lspci le puteți afla cu man lspci sau lspci –h.

    Alte utilitare pentru detectarea hardware-ului sunt prezentate în tabelul de mai jos:

    Informații  Comenzi și utilitare 

    Sistem lshwhardinfodmidecodedmidecode –t systemdmidecode –t baseboard 

    Procesor lscpulstopolstopo-no-graphicsdmidecode –t processorcat /proc/cpuinfo

    Memorie cat /proc/meminfofree –m

    dmidecode–t memory

     NUMA numactl –hardwareDispozitive PCI lspciDiscuri lsscsi

    hdparm –I /dev/sdalshw –c disk

    Interfețe de rețea  ethtoollshw –c network

    USB lsusbls -la /dev/disk/by-id/usb-*

    Partiționare și sistem de fișiere  lsblkdf –hT

    pydfparted –lsfdisk –lgdisk –l /dev/sda

    Sistem de operare uname –alsb_release –sdcat /etc/debian_versioncat /etc/redhat-releasecat /etc/os-release 

  • 8/18/2019 SO1 Suport de Curs Ver.7

    40/87

     Nu toate distribuțiile de linux includ toate utilitarele din table. De asemenea, unelefac parte din instalarea standard, altele trebuie instalate. Mai mult, e posibil ca unelesă nu aibă efect când sunt folosite într-o mașină virtuală.

    1.10 Aplicații și întrebări 

    Aplicații

    1. 

    Instalați o mașină virtuală cu Ubuntu Server (64 de biți) în Hyper -V cuconf igurația hardware Generation 1. Placa de rețea trebuie să fie conectată într -un switch de tip Extern. În timpul instalării folosiți partiționarea automată și nuuitați să instalați serverul OpenSSH.

    2.  Instalați o mașină virtuală cu Centos 7.2 (64 de biți) în Hyper -V cu conf igurațiahardware Generation 2 și două plăci de rețea, una conectată la un switch Externși una la un switch Private. În timpul instalării folosiți partiționarea automată șiMinimum install.

    3.  Instalați o mașină virtuală cu Centos 7.2 (64 de biți) în Ubuntu KVM. Folosiți bridge-ul virbr0 și NAT pentru conectarea mașinii virtuale la Internet. Metodaminimă de instalare și partiționarea automată.

    4.  Instalați o mașină virtuală cu Ubuntu Server (64 de biți) în Ubuntu KVM.

    Folosiți bridge-ul br0 pentru conectarea mașinii virtuale la Internet. Folosiți partiționarea automată și nu uitați să instalați serverul OpenSSH.

    5.  Conectați-vă la mașina virtuală și afișați toate dispozitivele PCI din sistem.6.  Conectați-vă la mașina virtuală și specificați numărul registrului de comandă sau

    registrului de stare pentru placa de rețea.7.  Conectați-vă la mașina virtuală și specificați producătorul și identificatorul de

    dispozitiv al North Bridge-ului și South Bridge-ului.8.  Conectați-vă la mașina virtuală și specificați codul de  clasă al controlerului

    SATA, SAS sau IDE.9.  Conectați-vă la mașina virtuală și specificați driverul folosit de sistemul de

    operare pentru placa de rețea.10. Conectați-vă la mașina virtuală și afișați toate dispozitivele produse de Intel

     prezente în sistem.11. Conectați-vă la mașina virtuală și specificați câte magistrale PCI sunt prezente

    în sistem.12. Conectați-vă la mașina virtuală și precizați la ce magistrală PCI sunt conectate

    interfețele de rețea. 13. Conectați-vă la mașina virtuală și afișați în hexazecimal partea standard a

    spațiului de configurare a dispozitivelor PCI prezente în sistem.14. Conectați-vă la mașina virtuală și afișați informații despre procesor (memorie,

    discuri, partiționare, sistem de fișiere, interfețe de rețea, versiunea kernelului șisistemului de operare).

  • 8/18/2019 SO1 Suport de Curs Ver.7

    41/87

     Întrebări 

    1.  Ce reprezintă fiecare câmp din adresa PCI 0000:00:01.0?2.  Care sunt caracteristicile care descriu PCIe mai degrabă ca rețea decât 

    magistrală? 3.  Descrieți într -o frază topologia PCIe.4.  Câte magistrale PCI pot exista într-un sistem?5.  Câte dispozitive pot fi conectate la o magistrală PCI? 6.  Câte funcții poate încorpora un dispozitiv PCI? 

    7. 

    Care sunt cele două probleme majore ale unei transmisii paralele?8.  Cum este posibil ca transmisia serială să fie mai rapidă decât transmisia paralelă? 9.  Ce înseamnă transmisie diferențială și ce rol are? 10. Care din cele două metode de transmisie PCI, paralelă și serială, este full duplex? 11. Câte fire de trasmisie folosește un lane PCIe? 12. Ce înseamnă PCI x8? 13. Care este lățimea de bandă pentru PCIe ver. 3 x4? 14. Ce înseamnă codare 8b/10b? 15. Câte dispozitive pot fi conectate la o magistrală SCSI îngustă (narrow)?16. Câte dispozitive pot fi conectate la o magistrală SCSI largă (wide)?17. Ce reprezintă setul principal de comenzi SCSI?18. Ce înseamnă domeniu SAS? 

    19. 

    Ce rol are dispozitivul inițiator în SCSI/SAS? 20. Ce rol are dis pozitivul țintă în SCSI/SAS? 21.  Cine folosește mecanismul de arbitrare, SAS sau SCSI? Ce rol are mecanismul

    de arbitrare.22. Prin ce este identificat un dispozitiv atașat la o magistrală SCSI (de ex. un disc

    SCSI)?23. Câte discuri pot fi atașate la un controler ATA? 24. Cine folosește specificațiile AHCI și cum lucrează acestea?25. Ce înseamnă PIO și cum funcționează?26. Ce înseamnă DMA și cum funcționează?27. Care sunt caracteristicile care descriu SATA mai degrabă  ca rețea decât

    magistrală? 28.

     

    Care sunt protocoalele folosite la programarea transferurilor de date în SATA?29. Care sunt protocoalele folosite la transmisia datelor în SATA?

    2 MECANISMUL DE STOCARE

  • 8/18/2019 SO1 Suport de Curs Ver.7

    42/87

    PERSISTENTĂ A DATELOR 

    De obicei, sistemele de operare permit stocarea persistentă a datelor (pentru perioadelungi de timp), astfel încât acestea să poată rezista la disfuncționalități ale sistemului,lipsa temporară a alimentării cu energie electrică sau altor probleme de acest tip.Arhitectura mecanismului de stocare persistentă este influențată de tehnologia

    hardware folosită în acest scop. Pentru mulți ani, tehnologia dominantă a fost aceeaa discurilor rigide - dispozitive electromagnetice cu discuri de stocare aflate înmișcare.  În prezent, sunt din ce în ce mai folosite dispozitivele SSD (Solid StateDisk). SSD-urile folosesc memorie nevolatilă NAND și nu au  părți mobile, lucrucare generează viteze de acces mai mari și totodată le face mai rezistente la șocurimecanice. Dar, cel puțin pentru viitorul apropiat, discurile rigide vor rămâne principala formă de stocare. În consecință, vom dezbate în continuare caracteristicilede performanță ale discurilor  rigide.

    Un disc rigid stochează datele în blocuri de dimensiune fixă cunoscute sub numelede sectoare fizice. Dimensiunea tipică pentru un sector   fizic este de 512 octeți.Sistemul de operare vede discul ca pe un șir de sectoare numerotate consecutiv,începând cu 0 până la un număr   maxim ce depinde de capacitatea discului.Procesorul poate cere controler-ului de disc să efectueze două operații: 

      să scrie date, adică să preia date de la o anumită adresă de memorie și să leducă  pe disc, la un anumit număr de sector. O cerere de scriere poatespecifica și transferul la mai multe sectoare consecutive.

      să citească date, adică să preia date de pe disc, de la un anumit sector, și săle ducă în memorie, la  o anumită adresă. Iarăși, o cerere  de citire poatespecifica transferul a mai multor sectoare consecutive.

    Reprezentarea discului ca număr secvențial  de sectoare ascunde câteva aspectehardware ce pot influența substanțial viteza de acces. Mai exact, din cauza modului

    de funcționare, în unele condiții, discurile pot asigura rate de transfer de ordinulzecilor de MB/s, iar în altele rate de transfer de numai câțiva zeci de kB/s.

    2.1 Structura discului rigid

    Un disc conține o stivă de platane montate pe un ax central. Platanele se rotesc la oviteză fixă, de exemplu 10000 rotații pe minut. Datele sunt înregistrate pe suprafața platanelor și citite prin intermediul unor capete de citire. Pentru fiecare suprafațăexistă un cap de citire și unul de scriere. Capetele de citire sunt prinse de un braț care

  • 8/18/2019 SO1 Suport de Curs Ver.7

    43/87

     poate pivota astfel încât să poziționeze capetele mai aproape sau mai departe de axulcentral. Figura de mai jos arată relația dintre platane, axul central și brațul capetelorde citire.

    Dacă brațul este lăsat într-o poziție fixă, rotația platanelor  crează o regiune circulară pe fiecare suprafață  care trece pe sub capul de citire corespunzător. R egiuneacirculară rezultată pe o singură suprafață se numește pistă; fiecare pistă este împărțităîn sute de sectoare. Colecția de piste, câte una pe suprafața fiecărui platan, accesibilăla o anumită poziție a capului de citire se numește cilindru.

     Numai un singur cap de citire poate fi activ la un moment dat. În funcție de capul decitire activ și de poziția brațului, pot fi citite numai sectoarele unei singure piste.Pentru a putea accesa mai multe date avem două opțiuni. (1) Schimbăm capul decitire activ și astfel avem acces la o altă pistă din același cilindru   (proces decomutare). (2)

    Mișcăm capul de citire pe o poziție mai apropiată sau mai depărtatăde ax pentru a avea acces la un alt cilindru (proces numit seek , căutare). În prezent,timpul de comutare a capului de citire este similar cu timpul necesar trecerii la uncilindru adiacent  –   o fracțiune de milisecundă –   astfel încât distincția nu esteimportantă. Timpul de căutare este mai mare pentru pistele mai depărtate  (trecerea brațului de citire la o pistă mai îndepărtată), dar nu proporțional. Rezultatul este cătrecerea ( procesul de căutare) la o pistă aflată la zeci de sute de cilindri depărtare poate consuma 5 ms, de zece ori mai mult decât trecerea la o pistă adiacentă. Acestanu este singurul timp pierdut. Odată ce capul de citire este poziționat deasupra pisteicorecte, controlerul de disc trebuie să aștepte ca sectorul corespunzător să se aliniezecu poziția capului de citire, o întârziere cunoscută sub numele de latență de rotație.Deoarece timpul necesar discului să efectueze o rotație completă este comparabil cu

    timpul de căutare (trecere) necesar poziționării capului de citire la zeci de mii decilindrii, latența de rotație poate influența semnificativ timpul total de acces la unsector aleator.

    Odată capul de citire poziționat corespunzător, sectoarele consecutive pot fi cititesau scrise la viteză mare. Chiar și un transfer care implică trecerea la o pistă adiacentăva fi penalizat numai cu timpul de căutare (mișcarea brațului de citire) și nu cu timpulenorm al latenței de rotație, deoarece primul sector al pistei este poziționat astfelîncât să  poată fi accesat imediat ce trecerea a avut loc.

  • 8/18/2019 SO1 Suport de Curs Ver.7

    44/87

    Dacă programele accesează un număr mare  de sectoare consecutive, este maiavantajos ca acest proces să se facă într-un singur tranfer de dimensiune mare decâtîn câteva transferuri mai mici. Unul din avantaje rezultă  din evitarea încărcăriisuplimentare întâlnite la nivelul interfeței dintre calculator și disc. Celălalt avantaj,mai semnificativ, constă din faptul că mai multe cereri separate înseamnă  rotațiisuplimentare, în special pentru scrieri; ratarea unui sector la timpul potrivit implicăașteptarea unei rotații complete ( până apare din nou). Citirile nu sunt atât de problematice deoarece discurile conțin memorie RAM, numită și cache buffers, care păstrează datele sectoarelor deja traversate de capul de citire, astfel încât ele pot ficitite fără să se aștepte apariția sectorul ratat. Discurile pot folosi cache-ul și pentru

    scrieri, dar numai dacă programul este proiectat să tolereze unele pierderi de daterecent scrise. De exemplu, o disfuncționalitate (întreruperea energiei electrice)apărută înainte ca datele din cache să fie scrise pe disc.

    Din acest motiv, secretul utilizării discului la potențial maxim constă în localizareadatelor. Trebuie reținut că: 

      accesul la un sector cu număr de identificare similar cu cel mai recent accesatva fi mai rapid decât accesul la un sector cu număr total diferit.

      accesul la sectoare consecutive va fi mai rapid decât accesul la sectoare chiarfoarte apropiate, dar nu consecutive.

      accesul la sectoare consecutive într-o singură operație de transfer va fi mairapid decât accesul lor în câteva operații mai mici.

    2.2 Formatarea discului

    Crearea unui sistem de fişier