Pristup Agregaciji Mrežnih Veza U Operativnom Sistemu Sa Mikrojezgrom
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERZITET U NOVOM SADU FAKULTET TEHNIČKIH NAUKA NOVI SAD Kandidat: Lazar Stričević Pristup agregaciji mrežnih veza u operativnom sistemu sa mikrojezgrom doktorska disertacija Mentor: dr Miroslav Hajduković Novi Sad 2016 УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА 21000 НОВИ САД, Трг Доситеја Обрадовића 6 КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА Редни број, РБР: Идентификациони број, ИБР: Тип документације, ТД: Монографска публикација Тип записа, ТЗ: Текстуални штампани документ/ЦД Врста рада, ВР: Докторска дисертација Аутор, АУ: Лазар Стричевић Ментор, МН: др Мирослав Хајдуковић, редовни професор Наслов рада, НР: Приступ агрегацији мрежних веза у оперативном систему са микројезгром Језик публикације, ЈП: српски (латиница) Језик извода, ЈИ: српски/енглески Земља публиковања, ЗП: Србија Уже географско подручје, УГП: Војводина Година, ГО: 2016. Издавач, ИЗ: Ауторски репринт Место и адреса, МА: Факултет техничких наука (ФТН), Д. Обрадовића 6, 21000 Нови Сад Физички опис рада, ФО: 7/90/107/0/27/0/2 (поглавља/страна/ цитата/табела/слика/графика/прилога) Научна област, НО: Електротехничко и рачунарско инжењерство Научна дисциплина, НД: Примењене рачунарске науке и информатика Предметна одредница/Кључне речи, ПО: агрегација мрежних веза, микројезгро, толеранција поремећаја, ослоњивост, поузданост, доступност, рачунарске мреже УДК Чува се, ЧУ: Библиотека ФТН, Д. Обрадовића 6, 21000 Нови Сад Важна напомена, ВН: Извод, ИЗ: Теза се бави повећањем укупне ослонљивости модуларног микрокернел оперативног систем MINIX 3 кроз повећање поузданости његовог мрежног подсистема. То је постигнуто тако што је овом оперативном систему додата агрегација мрежних веза, чиме је подражана толеранција на поремећај комуникационих линија. На крају је дата анализа како додати део утиче на укупне мрежне перформансе. Датум прихватања теме, ДП: Датум одбране, ДО: Чланови комисије, КО: Председник: др Душан Малбашки, редовни професор Члан: др Александар Ердељан, ванредни професор Члан: др Бранислав Атлагић, ванредни професор Члан: др Жарко Живанов, доцент Потпис ментора Члан, ментор: др Мирослав Хајдуковић, редовни професор UNIVERSITY OF NOVI SAD FACULTY OF TECHNICAL SCIENCES 21000 NOVI SAD, Trg DoSiteja Obradovića 6 KEY WORDS DOCUMENTATION Образац Q2.НА.04-05 - Издање 1 Accession number, ANO: Identification number, INO: Document type, DT: Monographic publication Type of record, TR: Textual material, printed/CD Contents code, CC: Ph.D. thesis Author, AU: Lazar Stričević Mentor, MN: Ph. D. Miroslav Hajduković, full professor Title, TI: Link aggregation approach to a microkernel operating system Language of text, LT: Serbian Language of abstract, LA: Serbian/English Country of publication, CP: Serbia Locality of publication, LP: Vojvodina Publication year, PY: 2016 Publisher, PB: Author's reprint Publication place, PP: Faculty of Technical Sciences, D. Obradovića 6, 21000 Novi Sad Physical description, PD: 7/90/107/0/27/0/2 (chapterS/pageS/ref./tableS/pictureS/graphS/appendixeS) Scientific field, SF: Electrical and Computer Engineering Scientific discipline, SD: Applied Computer Science and Informatics Subject/Key words, S/KW: link aggregation, microkernel, fault tolerance, dependability, reliability, availability, computer networks UC Holding data, HD: Library of Faculty of Technical Sciences, D. Obradovića 6, 21000 Note, N: Abstract, AB: The thesis deals with the way to increase the dependability of the modular microkernel operating system MINIX 3 through the increase of the reliability of its network subsystem. This is achieved by adding link aggregation to this operating system, which added fault tolerance for the communication lines. At the end, the analysis is given of how new module affects the overall network performance. Accepted by the Scientific Board on, ASB: Defended on, DE: Defended Board, DB: President: Ph. D. Dušan Malbaški, full professor Member: Ph. D. Aleksandar Erdeljan, associate professor Member: Ph. D. Branislav Atlagić, associate professor Member: Ph. D. Žarko Živanov, assistant professor Menthor's sign Member, Mentor: Ph. D. Miroslav Hajduković, full professor Sadržaj 1. Opšti uvod 11 1.1 Osnovni pojmovi oslonjivosti 11 1.2 Potreba za oslonjivošću operativnog sistema 12 1.3 Uzroci otkaza operativnog sistema 14 1.3.1 Kompleksnost softvera 14 1.3.2 Problemi sa drajverima 15 1.3.3 Problemi sa hardverom 15 1.4 Život sa greškama u sistemu 15 1.4.1 Mikrokernel 16 1.5 Važnost mrežnih komunikacija 17 1.6 Tema i cilj istraživanja 18 1.7 Struktura rada 19 1.8 Literatura 19 2. Primer operativnog sistema zasnovanog na mikrojezgru: MINIX 3 21 2.1 Kratka istorija MINIXa 21 2.1.1 Mikrokernel 22 2.2 Struktura operativnog sistema MINIX 3 23 2.3 Međuprocesna komunikacija (IPC) 24 2.4 Upravljanje drajverima 26 2.5 Izolacija drajvera 28 2.5.1 Klasifikacija privilegovanih operacija 28 2.5.1.1 Klasa I: upotreba procesora 28 2.5.1.2 Klasa II: pristup memoriji 29 2.5.1.3 Klasa III: Ulaz/Izlaz 29 2.5.1.4 Klasa IV: IPC 29 2.5.2 Izolaciona arhitektura 210 2.5.2.1 Sistemska strukturna zaštita 210 2.5.2.2 Statička politika izolacije drajvera 211 2.5.2.3 Mehanizmi dinamičke kontrole pristupa 213 2.5.3 Ograničavanje pristupa memoriji 213 2.5.3.1 Memorijske reference 214 2.5.3.2 Kopiranje i deljenje memorije 214 2.5.4 Ograničavanje ulaza/izlaza uređaja 216 2.5.4.1 Pristup uređaju 216 2.5.4.2 Obrada prekida 216 2.5.5 Ograničavanje međuprocesne komunikacije (IPC) 216 2.5.5.1 IPC primitive 217 2.5.5.2 Obrasci komunikacije sa nepouzdanim partnerom 217 2.6 Literatura 219 3. Funkcionisanje mrežnog podsistema 31 3.1 Nivoi mrežne komunikacije 31 3.2 Mrežni interfejs 32 3.2.1 Princip rada NIC 33 3.3 Mrežni drajver 34 3.3.1 Pojam drajvera 34 3.3.2 Specifičnosti mrežnog drajvera 35 3.3.3 Mrežni drajver na monolitnom sistemu (Linux) 35 3.3.3.1 “Sve je fajl” 36 3.3.3.2 Kako rade mrežni drajveri na Linuxu? 37 3.3.3.3 Implementacija mrežnog drajvera na Linuxu 37 3.3.4 Mrežni drajver na mikrokernelu (MINIX) 38 3.3.4.1 Sistemski procesi 39 3.3.4.2 Funkcionisanje drajvera na MINIXu 39 Instanca drajvera 310 Inicijalizacija 310 Interakcija sa sistemom 310 Protokol komunikacije 311 Prenos podataka 311 3.3.4.3 Opis poruka protokola za komunikaciju sa mrežnim drajverom 312 Konfiguracija 312 Statistika 313 Prenos podataka 313 Prijem paketa 313 Slanje paketa 314 Odgovor na zahteve za prijem i slanje paketa 314 3.4 Mrežni podsistem operativnog sistema 315 (mrežni i transportni protokoli) 3.4.1 Mrežni podsistem Linux jezgra 315 3.4.2 Mrežni podsistem MINIXa 316 3.5 Literatura 316 4. Agregacija mrežnih veza 41 4.1 Uvod 41 4.2 Nivoi agregacije 42 4.3 Agregacija mrežnih veza na nivou linka podataka 43 4.3.1 Režimi agregacije 43 4.3.1.1 Aktivnipomoćni (“activebackup”) 43 4.3.1.2 Emisija (“broadcast”) 44 4.3.1.3 Kružno balansiranje (“balancerr”) 44 4.3.1.4 EksILI balansiranje (“balancexor”) 45 4.3.1.5 Balansiranje odlaznog i dolaznog opterećenja (“balancetlb”, 46 “balancealb”) 4.3.2 Upotreba agregacije na host i mrežnim uređajima 46 4.3.3 Statička i dinamička agregacija 46 4.3.4 Izvedba agregacije 2. nivoa na aktivnoj mrežnoj opremi 47 4.3.4.1 EtherChannel 47 4.3.4.2 MLT (Multilink Trunking) 47 4.3.4.3 IEEE 802.3ad 47 4.3.5 Izvedba agregacije u operativnim sistemima opšte namene 48 4.3.5.1 Agregacija na Linuxu: drajver “bonding” 48 4.3.5.2 BSD: drajveri “lagg”, “trunk“ i “agr“ 49 4.3.5.3 Mac OS X 49 4.3.5.4 Windows 49 4.4 Agregacija na mrežnom nivou 410 4.5 Agregacija na transportnom nivou 410 4.6 Agregacija na aplikativnom/midlver nivou 410 4.7 Literatura 411 5. Primer implementacije agregacije mrežnih veza: MINIX 3 51 5.1 Mogući modeli implementacije agregacije mrežnih veza na nivou linka podataka 51 5.1.1 Opcija 1: izmena drajvera 51 5.1.2 Opcija 2: izmena TCP/IP sloja 51 5.1.3 Opcija 3: Implementacija agregacionog drajvera 52 5.2 Implementacija agregacionog drajvera 52 5.2.1 Prosleđivanje saobraćaja 53 5.2.2 IPC komunikacija 53 5.2.3 Nadzor veze 54 5.2.4 Delovi agregacionog drajvera 54 5.2.5 Konfiguracija 56 5.2.6 Izvođenje 56 5.2.7 Kompajliranje 58 5.2.8 Alat za testiranje 59 5.3 Plan za budući rad 59 5.3.1 Predlog modifikacije postojećih mrežnih drajvera 59 5.4 Literatura 510 6. Testiranje agregacionog drajvera 61 6.1 Testiranje ispravnosti agregacionog drajvera 61 6.2 Ocena performansi agregacije 62 6.2.1 Metodologija merenja 63 6.2.2 Testiranje performansi 64 6.2.2.1 Test perormansi 1: iperf TCP test na 100Mbit/s 64 6.2.2.2 Test performansi 2: iperf TCP test na 1000Mbit/s 65 6.2.2.3 Test performansi 22: iperf TCP test na 1000Mbit/s sa bržim 65 procesorom 6.2.2.4 Test performansi 3: Direktni test emisije (“broadcast”) na 100Mbit/s 66 6.2.2.5 Test performansi 4: Direktni test emisije na 1000Mbit/s 67 6.3 Literatura 68 7.