Բովանդակություն
Եթե դուք աշխատում եք ծրագրային ապահովման ոլորտում կամ դրա շուրջ, հավանաբար լսել եք վիրտուալ մեքենաների մասին: Եթե ոչ, ապա ձեզ կարող է հետաքրքրել, թե ինչ են դրանք և ինչի համար են օգտագործվում:
Որպես ծրագրային ապահովման ինժեներ, ես ամեն օր օգտագործում եմ վիրտուալ մեքենաներ: Դրանք հզոր գործիքներ են ծրագրային ապահովման մշակման մեջ, բայց դրանք ունեն նաև այլ կիրառումներ: Նաև հայտնի է որպես VM-ներ, շատ ձեռնարկություններ օգտագործում են դրանք իրենց ճկունության, հուսալիության և ծախսարդյունավետության պատճառով. դրանք նաև կանխում են աղետները ծրագրային ապահովման արագ փորձարկումից:
Եկեք տեսնենք, թե ինչ են վիրտուալ մեքենաները և ինչու են դրանք օգտագործվում:
Ի՞նչ է վիրտուալ մեքենան:
Վիրտուալ մեքենան օպերացիոն համակարգի (ՕՀ) օրինակ է, ինչպիսին է Windows, Mac OS կամ Linux, որն աշխատում է համակարգչի հիմնական ՕՀ-ում:
Սովորաբար, այն աշխատում է ձեր աշխատասեղանի հավելվածի պատուհանում: Վիրտուալ մեքենան ունի լիարժեք ֆունկցիոնալություն և գործում է որպես առանձին համակարգիչ կամ մեքենա: Ըստ էության, վիրտուալ մեքենան վիրտուալ համակարգիչ է, որն աշխատում է մեկ այլ համակարգչի ներսում, որը հայտնի է որպես հյուրընկալող մեքենա:
![](/wp-content/uploads/tips/528/ri0t9dud7o.jpg)
Պատկեր 1. Վիրտուալ մեքենա, որն աշխատում է նոութբուքի վրա:
Վիրտուալ մեքենան չի աշխատում: չունեն սարքավորումներ (հիշողություն, կոշտ սկավառակ, ստեղնաշար կամ մոնիտոր): Այն օգտագործում է հյուրընկալող մեքենայի մոդելավորված սարքավորում: Դրա պատճառով մի քանի VM-ներ, որոնք նաև կոչվում են «հյուրեր», կարող են գործարկվել մեկ հյուրընկալող մեքենայի վրա:
![](/wp-content/uploads/tips/528/ri0t9dud7o-1.jpg)
Պատկեր 2. Հոսթ մեքենան աշխատում է բազմաթիվ VM-ներով:
Հյուրընկալողը կարող է նաև գործարկել մի քանի VM-ներ տարբեր գործողությամբհամակարգեր, ներառյալ Linux, Mac OS և Windows: Այս հնարավորությունը կախված է հիպերվիզոր կոչվող ծրագրաշարից (տես վերևում գտնվող նկար 1): Հիպերվիզորն աշխատում է հյուրընկալող մեքենայի վրա և թույլ է տալիս ստեղծել, կարգավորել, գործարկել և կառավարել վիրտուալ մեքենաներ:
Հիպերվիզորը հատկացնում է սկավառակի տարածք, պլանավորում է մշակման ժամանակը և կառավարում հիշողության օգտագործումը յուրաքանչյուր VM-ի համար: Ահա թե ինչ են անում այնպիսի հավելվածներ, ինչպիսիք են Oracle VirtualBox-ը, VMware-ը, Parallels-ը, Xen-ը, Microsoft Hyper-V-ը և շատ ուրիշներ. դրանք հիպերվիզորներ են:
Հիպերվիզորը կարող է աշխատել նոութբուքի, ԱՀ-ի կամ սերվերի վրա: Այն հասանելի է դարձնում վիրտուալ մեքենաները տեղական համակարգչին կամ ցանցում բաշխված օգտվողներին:
Վիրտուալ մեքենաների և միջավայրերի տարբեր տեսակներ պահանջում են տարբեր տեսակի հիպերվիզորներ: Եկեք նայենք դրանցից մի քանիսին:
Վիրտուալ մեքենաների տեսակները
Համակարգի վիրտուալ մեքենաներ
Համակարգային վիրտուալ մեքենաները, որոնք երբեմն կոչվում են ամբողջական վիրտուալացում, ղեկավարվում են հիպերվիզորի կողմից և ապահովում են իրական համակարգչային համակարգի ֆունկցիոնալությունը: Նրանք օգտագործում են հյուրընկալողի բնիկ օպերացիոն համակարգը՝ համակարգի ռեսուրսները կառավարելու և կիսելու համար:
Համակարգի վիրտուալ մեքենաները հաճախ պահանջում են հզոր հոսթ՝ արագ կամ մի քանի պրոցեսորներով, մեծ քանակությամբ հիշողությամբ և տոննա սկավառակի տարածությամբ: Ոմանք, որոնք աշխատում են անհատական կամ նոութբուք համակարգիչներով, կարող են չպահանջել այն հաշվողական հզորությունը, որն անհրաժեշտ է խոշոր ձեռնարկությունների վիրտուալ սերվերներին. Այնուամենայնիվ, դրանք դանդաղ կաշխատեն, եթե հյուրընկալող համակարգը համարժեք չէ:
Գործընթացը վիրտուալՄեքենաներ
Գործընթաց վիրտուալ մեքենաները միանգամայն տարբերվում են SVM-ներից. հնարավոր է, որ դրանք աշխատեն ձեր սարքի վրա և նույնիսկ չգիտեք այդ մասին: Դրանք նաև հայտնի են որպես կիրառական վիրտուալ մեքենաներ կամ կառավարվող գործարկման միջավայրեր (MREs): Այս վիրտուալ մեքենաներն աշխատում են հյուրընկալող օպերացիոն համակարգի ներսում և աջակցում են հավելվածներին կամ համակարգային գործընթացներին:
Ինչու՞ օգտագործել PVM: Նրանք ծառայություններ են մատուցում՝ առանց կախվածության կոնկրետ օպերացիոն համակարգերից կամ սարքաշարից: Նրանք ունեն իրենց փոքրիկ ՕՀ՝ միայն իրենց անհրաժեշտ ռեսուրսներով: ԱՎԻ-ն առանձին միջավայրում է. Կարևոր չէ՝ այն աշխատում է Windows-ի, Mac OS-ի, Linux-ի կամ որևէ այլ հյուրընկալող մեքենայի վրա:
Ամենատարածված գործընթացի վիրտուալ մեքենաներից մեկն այն է, որի մասին հավանաբար լսել եք և տեսել եք, որ աշխատում է դրա վրա: ձեր համակարգիչը: Այն օգտագործվում է Java հավելվածներ գործարկելու համար և կոչվում է Java վիրտուալ մեքենա կամ JVM կարճ:
Hypervisors-ի տեսակները
Վիրտուալ մեքենաների մեծ մասը, որոնց հետ մենք մտահոգված ենք, օգտագործում են հիպերվիզոր, քանի որ դրանք նմանակում են: մի ամբողջ համակարգչային համակարգ։ Գոյություն ունեն երկու տարբեր տեսակի հիպերվիզորներ՝ Bare Metal Hypervisors և Hosted Hypervisors: Եկեք արագ նայենք երկուսին էլ:
Bare Metal Hypervisor
BMH-ները կարող են նաև կոչվել բնիկ հիպերվիզորներ, և դրանք աշխատում են ուղղակիորեն հյուրընկալողի ապարատում, այլ ոչ թե գործարկվում հյուրընկալողի օպերացիոն համակարգում: Փաստորեն, նրանք զբաղեցնում են հյուրընկալողի օպերացիոն համակարգի տեղը, պլանավորումը ևկառավարելով ապարատային օգտագործումը յուրաքանչյուր վիրտուալ մեքենայի կողմից՝ այդպիսով հեռացնելով «միջին մարդուն» (հյուրընկալողի OS-ն) գործընթացում:
Բնական հիպերվիզորները սովորաբար օգտագործվում են խոշոր ձեռնարկությունների VM-ների համար, որոնք ընկերությունները օգտագործում են աշխատակիցներին ապահովելու համար: սերվերի ռեսուրսներ. Microsoft Azure-ը կամ Amazon Web Services-ը VM-ներ են, որոնք տեղակայված են այս տեսակի ճարտարապետության վրա: Այլ օրինակներ են KVM-ը, Microsoft Hyper-V-ը և VMware vSphere-ը:
Hosted Hypervisor
Hosted Hypervisor-ն աշխատում է ստանդարտ օպերացիոն համակարգերով, ինչպես ցանկացած այլ ծրագիր, որը մենք աշխատում ենք մեր մեքենաներում: Նրանք օգտագործում են հյուրընկալողի ՕՀ-ը՝ ռեսուրսները կառավարելու և բաշխելու համար: Այս տեսակի հիպերվիզորն ավելի հարմար է առանձին օգտատերերի համար, ովքեր պետք է աշխատեն մի քանի օպերացիոն համակարգեր իրենց մեքենաներում:
Դրանք ներառում են այնպիսի ծրագրեր, ինչպիսիք են Oracle VirtualBox-ը, VMware Workstations-ը, VMware Fusion-ը, Parallels Desktop-ը և շատ ուրիշներ: Դուք կարող եք ավելի մանրամասն տեղեկություններ գտնել հյուրընկալված հիպերվիզորների մասին մեր հոդվածում՝ «Վիրտուալ մեքենաների լավագույն ծրագրակազմը»:
Ինչու՞ օգտագործել վիրտուալ մեքենաներ:
Այժմ, երբ դուք ունեք հիմնական հասկացողություն, թե ինչ է վիրտուալ մեքենան, հավանաբար կարող եք մտածել մի քանի հիանալի հավելվածների մասին: Ահա մի քանի հիմնական պատճառ, թե մարդիկ օգտագործում են վիրտուալ մեքենաներ:
1. Ծախսերի արդյունավետ
Վիրտուալ մեքենաները ծախսարդյունավետ են բազմաթիվ իրավիճակներում: Ամենահայտնիներից մեկը կորպորատիվ աշխարհում է: Աշխատակիցների համար ռեսուրսներ ապահովելու համար ֆիզիկական սերվերների օգտագործումը կարող էլինել շատ թանկ. Սարքավորումը էժան չէ, և դրա պահպանումն էլ ավելի ծախսատար է:
Վիրտուալ մեքենաների օգտագործումը որպես ձեռնարկության սերվերներ այժմ դարձել է նորմ: MS Azure-ի նման մատակարարից VM-ներով չկան նախնական սարքավորումների գնումներ և սպասարկման վճարներ: Այս VM-ները կարող են կարգավորվել, կազմաձևվել և օգտագործվել ընդամենը մեկ ժամվա ընթացքում: Նրանք կարող են նաև անջատվել, երբ դրանք չեն օգտագործվում և ընդհանրապես ծախսեր չեն պահանջում:
Ձեր մեքենայի վրա VM-ի օգտագործումը կարող է նաև հսկայական գումար խնայել: Եթե Ձեզ անհրաժեշտ է աշխատել մի քանի օպերացիոն համակարգերում կամ տարբեր ապարատային կոնֆիգուրացիաներում, կարող եք
օգտագործել մի քանի վիրտուալ մեքենաներ մեկ հոսթի վրա. կարիք չկա դուրս գալ և առանձին համակարգիչ գնել յուրաքանչյուր առաջադրանքի համար:
2. Սանդղելի և ճկուն
Անկախ նրանից, թե դրանք ձեռնարկության սերվերներ են, թե ձեր նոութբուքի վրա աշխատող վիրտուալ մեքենաներ, վիրտուալ մեքենաները մասշտաբելի են: Հեշտ է հարմարեցնել ռեսուրսները ձեր կարիքներին համապատասխան: Եթե ձեզ ավելի շատ հիշողություն կամ կոշտ սկավառակի տարածք է անհրաժեշտ, պարզապես մտեք հիպերվիզոր և վերակազմավորեք VM-ն ավելի շատ ունենալու համար: Նոր սարքավորում գնելու կարիք չկա, և գործընթացը կարող է արագ ավարտվել:
3. Արագ կարգավորում
Նոր VM կարող է արագ կարգավորվել: Ես ունեցել եմ դեպքեր, երբ ինձ անհրաժեշտ է եղել VM-ի նոր կարգավորում, զանգահարել եմ իմ գործընկերոջը, ով կառավարում է դրանք, և պատրաստ էի դրանք օգտագործել մեկ ժամից պակաս ժամանակում:
4: Աղետների վերականգնում
Եթե փորձում եք կանխել տվյալների կորուստը և պատրաստվել աղետից վերականգնմանը, VM-ները կարող են լինելհիանալի գործիք. Դրանք հեշտ է կրկնօրինակել և անհրաժեշտության դեպքում դրանք կարող են տարածվել տարբեր վայրերում: Եթե երրորդ կողմը, ինչպիսին Microsoft-ն է կամ Amazon-ը, հյուրընկալում է վիրտուալ մեքենաներին, դրանք կլինեն առանց կայքի, ինչը նշանակում է, որ ձեր տվյալները ապահով են, եթե ձեր գրասենյակն այրվի:
5. Հեշտ է վերարտադրվել
Հիպերվիզորների մեծ մասը թույլ է տալիս ստեղծել VM-ի պատճեն կամ պատկեր: Պատկերումը թույլ է տալիս հեշտությամբ պտտել նույն բազային VM-ի ճշգրիտ վերարտադրությունները ցանկացած իրավիճակի համար:
Այն միջավայրում, որտեղ ես աշխատում եմ, մենք յուրաքանչյուր մշակողի տալիս ենք VM՝ օգտագործելու մշակման և փորձարկման համար: Այս գործընթացը թույլ է տալիս մեզ ունենալ պատկեր՝ կազմաձևված բոլոր անհրաժեշտ գործիքներով և ծրագրերով: Երբ մենք ունենք նոր ծրագրավորող, որն աշխատում է, մեզ մնում է միայն պատճենել այդ պատկերը, և նրանք ունեն այն, ինչ անհրաժեշտ է աշխատելու համար:
6. Կատարյալ Dev/Test-ի համար
Վիրտուալ մեքենաների օգտագործման լավագույն առավելություններից մեկն այն է, որ դրանք կատարյալ գործիք են ծրագրային ապահովման մշակման և փորձարկման համար: VM-ները թույլ են տալիս ծրագրավորողներին զարգացնել բազմաթիվ հարթակներում և միջավայրերում մեկ մեքենայի վրա: Եթե այդ VM-ը փչանա կամ ոչնչացվի, կարող է արագ ստեղծվել նորը:
Դրանք թույլ են տալիս փորձարկողին ունենալ մաքուր նոր միջավայր յուրաքանչյուր փորձարկման ցիկլի համար: Ես աշխատել եմ նախագծերի վրա, որտեղ մենք ստեղծել ենք ավտոմատ թեստային սկրիպտներ, որոնք ստեղծում են նոր VM, տեղադրում են ծրագրաշարի վերջին տարբերակը, կատարում են բոլոր անհրաժեշտ թեստերը, այնուհետև ջնջում ենք VM-ը, երբ թեստերն ավարտվեն:
VM-ները հիանալի աշխատում են դրա համար:արտադրանքի փորձարկում և ակնարկներ, ինչպիսիք են մենք այստեղ SoftwareHow.com-ում: Ես կարող եմ հավելվածներ տեղադրել իմ մեքենայի վրա աշխատող VM-ում և փորձարկել դրանք՝ չխաթարելով իմ հիմնական միջավայրը:
Երբ ես ավարտեմ փորձարկումը, ես միշտ կարող եմ ջնջել վիրտուալ մեքենան, այնուհետև ստեղծել նորը, երբ դա ինձ անհրաժեշտ լինի: Այս գործընթացը նաև թույլ է տալիս ինձ փորձարկել բազմաթիվ հարթակներում, չնայած ես միայն Windows մեքենա ունեմ:
Վերջնական բառեր
Ինչպես տեսնում եք, վիրտուալ մեքենաները ծախսարդյունավետ, բազմակողմանի գործիք են, որը կարող է օգտագործել բազմաթիվ ծրագրերի համար: Մենք այլևս կարիք չունենք գնելու, կարգավորելու և սպասարկելու թանկարժեք ապարատ՝ փորձարկողների, մշակողների և այլոց համար սերվերի հասանելիություն ապահովելու համար: VM-ները մեզ տալիս են ճկունություն՝ ցանկացած պահի հեշտությամբ և արագ ստեղծելու մեզ անհրաժեշտ օպերացիոն համակարգերը, սարքավորումները և միջավայրերը: