目次
- 1 परिचय
- 2 KVM र अन्य भर्चुअलाइजेसन प्रविधिहरूको तुलना
- 3 Ubuntu मा KVM वातावरण निर्माण【स्थापना र प्रारम्भिक सेटिङ】
- 4 भर्चुअल मेसिनको निर्माण र आधारभूत सञ्चालन
- 5 नेटवर्क सेटिङ र विस्तार
- 6 भण्डारण व्यवस्थापन र डिस्क सञ्चालन
- 7 गेस्ट OS को स्थापना र सञ्चालन
- 8 व्यावहारिक प्रयोग उदाहरणहरू र स्वचालन टिप्स
- 9 समस्या निवारण – सामान्य त्रुटि समाधान
- 10 सुरक्षा र प्रदर्शन अनुकूलन
- 11 सारांश – भविष्यका सिकाइ स्रोतहरू
- 12 कमाण्ड छिटो सन्दर्भ तालिका र सामान्यतया प्रयोग गरिने सेटिङ उदाहरणहरू (चीट शीट)
- 13 FAQ (सामान्य प्रश्नहरू)
- 13.1 Q1: KVM र VirtualBox वा VMware को भिन्नता के हो?
- 13.2 Q2: भर्चुअल मेसिनको ब्याकअप र पुनर्स्थापना कसरी गर्ने?
- 13.3 Q3: USB डिभाइसलाई भर्चुअल मेसिनमा प्रयोग गर्न चाहँदा?
- 13.4 Q4: भर्चुअल मेसिनलाई होस्ट सुरु हुँदा स्वतः सुरु गर्न चाहँदा?
- 13.5 Q5: भर्चुअल मेसिनको कार्य निष्पादन ढिलो हुँदा के गर्ने?
- 13.6 Q6: नेटवर्क सेटिङ राम्रोसँग काम गर्दैन। के गर्ने?
- 13.7 Q7: KVM मा क्लस्टर वा HA कन्फिगरेसन गर्न सकिन्छ?
परिचय
Ubuntu ले विश्वभरमा व्यापक रूपमा प्रयोग गरिने Linux वितरणहरू मध्ये एक हो। व्यक्तिगत प्रयोगकर्ताबाट एंटरप्राइज वातावरण सम्मका विभिन्न दृश्यहरूमा समर्थन प्राप्त छ, र सर्वर निर्माण तथा विकास वातावरणमा पनि धेरै प्रयोग गरिन्छ। यस्तो Ubuntu मा पूर्ण भर्चुअलाइजेशन प्राप्त गर्न चाहनुहुन्छ भने, “KVM (Kernel-based Virtual Machine)” धेरै शक्तिशाली छ। KVM ले Linux कर्नेलमा मानक रूपमा समावेश गरिएको हाइपरभाइजर प्रकारको भर्चुअलाइजेशन प्रविधि हो, जसले हार्डवेयरको भर्चुअलाइजेशन समर्थन सुविधाहरू (Intel VT वा AMD-V) लाई प्रयोग गरेर उच्च प्रदर्शन र स्थिरता प्राप्त गर्दछ। KVM खुला स्रोत हो, र लागत घटाउँदै पूर्ण भर्चुअलाइजेशन आधार निर्माण गर्न सकिने बुँदा यसको ठूलो विशेषता हो। भर्चुअलाइजेशन प्रविधि भनेको कठिन लाग्न सक्छ भन्ने धेरैले सोच्न सक्छन्। तर, Ubuntu र KVM को संयोजन भएमा, नयाँ प्रयोगकर्ताले पनि तुलनात्मक रूपमा सजिलै भर्चुअल मेसिन निर्माण र सञ्चालन गर्न सक्छन्। निश्चित रूपमा, विद्यमान भौतिक सर्वर स्रोतहरूलाई कुशलतापूर्वक प्रयोग गर्न चाहने मध्यवर्ती प्रयोगकर्ता वा वास्तवमा व्यवसायिक प्रणालीलाई भर्चुअलाइज गर्न चाहने साइटका इन्जिनियरहरूलाई पनि सिफारिस गरिन्छ। यो लेखमा, Ubuntu मा KVM प्रयोग गरेर भर्चुअलाइजेशन वातावरणको निर्माण विधिबाट, आधारभूत प्रयोग, व्यावहारिक उपयोग ज्ञान, सामान्य समस्याहरूको समाधान सम्मलाई विस्तृत रूपमा व्याख्या गरिन्छ। “अब KVM लागू गर्न चाहन्छु” “Ubuntu को भर्चुअलाइजेशन वातावरणलाई थप सुविधाजनक रूपमा प्रयोग गर्न चाहन्छु” भन्ने सोच्नेहरूले, कृपया अन्त्यसम्म हेर्नुहोस्।KVM र अन्य भर्चुअलाइजेसन प्रविधिहरूको तुलना
भर्चुअलाइजेसन प्रविधिहरूमा विभिन्न प्रकारका छन्, तर Ubuntu वातावरणमा सामान्यतया प्रयोग गरिनेहरूमा KVM बाहेक VirtualBox र VMware छन्। यहाँ, तिनीहरूको विशेषताहरू, भिन्नताहरू, KVM छनोट गर्ने फाइदाहरू र बेफाइदाहरू बारे विस्तृत रूपमा व्याख्या गर्दछौं।मुख्य भर्चुअलाइजेसन प्रविधिहरूका प्रकारहरू
- KVM (Kernel-based Virtual Machine) KVM लिनक्स कर्नेलमा एकीकृत गरिएको भर्चुअलाइजेसन कार्य हो, जसको लागि होस्ट OS लिनक्स हुनुपर्छ। हार्डवेयरको भर्चुअलाइजेसन समर्थन कार्य (Intel VT वा AMD-V) प्रयोग गरेर, भर्चुअल मेसिनको प्रदर्शन उच्च हुन्छ, र वास्तविक सञ्चालनमा पर्याप्त रूपमा सहन सक्छ जुन ठूलो विशेषता हो। कमान्ड सञ्चालन वा व्यवस्थापन उपकरण (virt-manager आदि) प्रयोग गरेर, लचिलो रूपमा सञ्चालन गर्न सकिन्छ।
- VirtualBox VirtualBox Oracle कम्पनीले प्रदान गर्ने डेस्कटप-उन्मुख भर्चुअलाइजेसन सफ्टवेयर हो, जुन Windows, Mac, Linux जस्ता विभिन्न प्लेटफर्महरूमा चल्छ। इन्टरफेस बुझ्न सजिलो छ, र व्यक्तिगत प्रयोग वा सिकाइ उद्देश्यका लागि सामान्यतया प्रयोग गरिन्छ। यद्यपि, KVM को तुलनामा व्यावसायिक वातावरण वा उच्च भार उद्देश्यहरूका लागि केही असुविधाजनक पक्षहरू छन्।
- VMware (VMware Workstation/ESXi आदि) VMware व्यावसायिक उद्देश्यहरूमा धेरै प्रयोग हुने व्यावसायिक भर्चुअलाइजेसन उत्पादन हो। कार्यहरू धनी छन् र समर्थन पनि पूर्ण छ, तर चुक्ता लाइसेन्स आवश्यक पर्ने बिन्दु ठूलो भिन्नता हो। विशेष गरी ठूलो पैमालाको कम्पनी वातावरणमा प्रयोग गरिन्छ, तर लागत पक्षको बोझ छ।
KVM को फाइदाहरू
- उच्च प्रदर्शन र स्थिरता KVM लिनक्स कर्नेलको भागको रूपमा चल्ने भएकाले, स्रोत दक्षता राम्रो छ, र भर्चुअल मेसिनहरूका लागि CPU वा मेमोरी वितरण पनि विस्तृत रूपमा नियन्त्रण गर्न सकिन्छ। वास्तविक व्यावसायिक प्रणाली सञ्चालनमा सहन सक्ने स्थिरता आकर्षक छ।
- ओपन सोर्स र लागत नलाग्ने KVM पूर्ण रूपमा ओपन सोर्स हो, र लाइसेन्स शुल्क लाग्दैन। कम लागतमा भर्चुअलाइजेसन आधार निर्माण गर्न चाहने अवस्थामा पनि उपयुक्त छ।
- धनी व्यवस्थापन उपकरण र स्वचालन कमान्ड लाइन उपकरण (virsh वा virt-install) वा GUI व्यवस्थापन उपकरण (virt-manager) आदि, उद्देश्य अनुसार विविध व्यवस्थापन विधिहरू छन्। स्वचालन वा स्क्रिप्टकरण पनि सजिलो छ, र DevOps वा पूर्वाधार व्यवस्थापनका लागि पनि उपयुक्त छ।
KVM को बेफाइदाहरू
- होस्ट OS लिनक्समा मात्र सीमित KVM लिनक्स कर्नेलको पूर्वशर्त हुने भएकाले, Windows वा Mac को होस्ट वातावरणमा प्रयोग गर्न सकिँदैन।
- प्रारम्भिक सेटिङ वा समस्या समाधानका लागि लिनक्सको ज्ञान आवश्यक GUI उपकरणहरू पनि तयार छन्, तर नेटवर्क सेटिङ वा विस्तृत ट्युनिङका लागि कमान्ड सञ्चालन वा लिनक्स-विशिष्ट ज्ञान आवश्यक पर्न सक्छ।
कुन अवस्थामा KVM छनोट गर्नुपर्छ?
- भौतिक सर्भरको स्रोतहरूलाई दक्षतापूर्वक उपयोग गर्न चाहने अवस्था
- पूर्ण व्यावसायिक प्रणाली वा सर्भर उद्देश्यका लागि भर्चुअलाइजेसन उपयोग गर्न चाहने अवस्था
- लागत घटाउँदै पूर्ण भर्चुअलाइजेसन आधार निर्माण गर्न चाहने अवस्था
- लिनक्स सर्भर सञ्चालन वा पूर्वाधार व्यवस्थापनलाई स्वचालित गर्न चाहने अवस्था
Ubuntu मा KVM वातावरण निर्माण【स्थापना र प्रारम्भिक सेटिङ】
Ubuntu मा KVM लाई उपयोग गर्नको लागि, केही पूर्वशर्तहरू, तयारीहरू, र वास्तविक स्थापना कार्यहरू आवश्यक छन्। यो अध्यायमा, KVM को परिचयको लागि आवश्यक चरणहरूलाई क्रममा व्याख्या गर्दछ। शुरुआतीहरूले पनि सुचारु रूपमा वातावरण निर्माण गर्न सक्ने गरी, बिन्दुहरूमा विस्तृत रूपमा व्याख्या गर्दछ।आवश्यक आवश्यकताहरू र पूर्व-पुष्टि
KVM प्रयोग गर्नको लागि, कम्प्युटर वा सर्भरको CPU ले «आभासीकरण समर्थन सुविधा (Intel VT वा AMD-V)» लाई समर्थन गर्न आवश्यक छ। पहिले, निम्न कमान्डले आभासीकरण समर्थन सुविधा सक्रिय छ कि जाँच गरौं।egrep -c '(vmx|svm)' /proc/cpuinfo
१ भन्दा बढीको मान देखाइएमा, आभासीकरण सुविधा प्रयोग गर्न सकिन्छ।
साथै, ६४-बिट संस्करणको Ubuntu हुनु पनि आवश्यक शर्त हो।KVM र आवश्यक प्याकेजहरूको स्थापना
KVM मुख्य भाग र सम्बन्धित उपकरणहरू (libvirt वा virt-manager आदि) स्थापना गर्दछ। निम्न कमान्डहरूलाई क्रममा कार्यान्वयन गर्नुहोस्।sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
qemu-kvm
:KVM आभासीकरणको मुख्य भागlibvirt-daemon-system
,libvirt-clients
:आभासी मेसिनहरूको व्यवस्थापन सेवाbridge-utils
:नेटवर्क ब्रिजको लागि उपकरणvirt-manager
:GUI मार्फत आभासी मेसिनहरू व्यवस्थापन गर्न सकिने उपकरण
प्रयोगकर्ताको समूह सेटिङ र अधिकार प्रदान
स्थापना पछि, हालको प्रयोगकर्तालाई KVM वा libvirt को समूहमा थपौं। यसले, प्रशासक अधिकार बिना आभासी मेसिनहरू सञ्चालन गर्न सकिन्छ।sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)
प्रभाव लाग्नको लागि, लगआउट-फेरि लगइन वा पुन: सुरु गर्नुहोस्।KVM सेवाको सञ्चालन पुष्टि
KVM सही रूपमा स्थापना भएको र सेवा सुरु भएको छ कि पुष्टि गर्दछ।sudo systemctl status libvirtd
«active (running)» देखाइएमा सामान्य छ।
साथै, निम्न कमान्डले KVM सक्रिय छ कि पुष्टि गर्न सकिन्छ।virsh list --all
आभासी मेसिनहरूको सूची (हाल खाली छ तर) देखाइएमा, KVM वातावरण सही रूपमा निर्माण भएको छ।भर्चुअल मेसिनको निर्माण र आधारभूत सञ्चालन
KVM वातावरण तयार भएपछि, अब वास्तविक रूपमा भर्चुअल मेसिनहरू निर्माण गरेर सञ्चालन गर्ने समय आयो। KVM मा, ग्राफिकल व्यवस्थापन उपकरण (virt-manager) र कमान्ड लाइन सञ्चालन (virt-install वा virsh) लाई अवस्थानुसार प्रयोग गर्न सकिन्छ। यहाँ, दुवै दृष्टिकोणहरू प्रस्तुत गर्दछौं।virt-manager (GUI) प्रयोग गरेर भर्चुअल मेसिनको निर्माण
virt-manager ले भर्चुअल मेसिनहरूको निर्माण र व्यवस्थापनलाई सहज GUI मार्फत गर्न सकिने उपकरण हो। लिनक्सको डेस्कटप वातावरण प्रयोग गर्दै हुनुहुन्छ भने, virt-manager को प्रयोग धेरै सुविधाजनक हुन्छ।- “एप्लिकेसन” वा कमान्ड लाइनबाट
virt-manager
लाई सुरु गर्नुहोस्। - स्क्रिनको बायाँ माथि “नयाँ” बटनमा क्लिक गर्नुहोस्।
- इन्स्टलेशन मिडिया (ISO इमेज आदि) को स्थान निर्दिष्ट गर्नुहोस्, र गेस्ट OS को प्रकार (उदाहरण: Ubuntu, Windows) छान्नुहोस्।
- भर्चुअल मेसिनलाई आवंटन गर्ने CPU को संख्या, मेमोरी, डिस्क क्षमता आदि सेट गर्नुहोस्।
- सेटिङहरू जाँच गर्नुहोस् र “समाप्त” मा क्लिक गर्दा, भर्चुअल मेसिन निर्माण हुन्छ र इन्स्टलेशन स्क्रिन देखाइन्छ।
virt-install (CLI) मार्फत भर्चुअल मेसिनको निर्माण
सर्भर प्रयोग वा रिमोट वातावरणमा, कमान्ड लाइनबाट भर्चुअल मेसिन निर्माण गर्ने धेरै अवस्थामा सुविधाजनक हुन्छ। तलvirt-install
कमान्डको आधारभूत प्रयोगको उदाहरण छ।sudo virt-install
--name ubuntu-vm
--memory 2048
--vcpus 2
--disk size=20
--cdrom /path/to/ubuntu.iso
--os-type linux
--os-variant ubuntu20.04
--network network=default
--graphics vnc
--name
:भर्चुअल मेसिनको नाम--memory
:आवंटन गर्ने मेमोरी (MB एकाइ)--vcpus
:आवंटन गर्ने CPU कोर संख्या--disk size=20
:भर्चुअल डिस्क क्षमता (GB एकाइ)--cdrom
:इन्स्टलेशनका लागि प्रयोग गर्ने ISO इमेजको पथ--os-type
,--os-variant
:OS को प्रकार वा संस्करण निर्दिष्ट--network
:जडान गर्ने नेटवर्क--graphics
:ग्राफिक मोड (VNC आदि)
भर्चुअल मेसिनको सुरु, बन्द, हटाउने र स्न्यापसट प्राप्ति
KVM मा, निर्माण गरिएको भर्चुअल मेसिनको सञ्चालन पनि सजिलो छ। प्रतिनिधि कमान्डहरू निम्नानुसार छन्।- भर्चुअल मेसिनको सुरु
virsh start <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको बन्द
virsh shutdown <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको जबरजस्ती बन्द
virsh destroy <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको हटाउने (डिस्क पनि मेटाउने अवस्थामा सावधानी)
virsh undefine <भर्चुअल मेसिन नाम>
- स्न्यापसटको निर्माण
virsh snapshot-create-as <भर्चुअल मेसिन नाम> <स्न्यापसट नाम>
यी सञ्चालनहरू virt-manager को GUI बाट पनि समान रूपमा गर्न सकिन्छ।नेटवर्क सेटिङ र विस्तार
KVM मा भर्चुअल मेसिन सञ्चालन गर्दा, नेटवर्क सेटिङ निकै महत्वपूर्ण हुन्छ। डिफल्ट सेटिङले धेरै प्रयोजनहरूका लागि प्रयोग गर्न सकिन्छ, तर व्यावसायिक प्रयोजन वा पूर्ण रूपमा सर्भर सञ्चालनमा, कस्टमाइज आवश्यक पर्न सक्छ। यो अध्यायमा, KVM को नेटवर्कको आधारभूत कुराबाट, सामान्यतया प्रयोग हुने विस्तार सेटिङसम्म व्याख्या गरिन्छ।डिफल्ट NAT (virbr0) र ब्रिज नेटवर्कको भिन्नता
KVM स्थापना गर्दा, स्वतः “virbr0” भन्ने भर्चुअल नेटवर्क ब्रिज सिर्जना हुन्छ। यो NAT (Network Address Translation) विधिको नेटवर्क हो, जसका निम्नलिखित विशेषताहरू छन्।- virbr0 (NAT विधि) को विशेषताहरू
- भर्चुअल मेसिनले बाह्य इन्टरनेटमा पहुँच गर्न सक्छ
- तर, होस्ट वा अन्य नेटवर्कबाट भर्चुअल मेसिनमा प्रत्यक्ष पहुँचका लागि पोर्ट फर्वार्ड जस्ता सेटिङ आवश्यक हुन्छ
- घर वा विकास वातावरण, परीक्षण प्रयोजनका लागि उपयुक्त
- ब्रिज नेटवर्कको विशेषताहरू
- भर्चुअल मेसिनले होस्टसँगै नेटवर्क सेगमेन्टमा भाग लिन सक्छ
- भौतिक PC वा अन्य सर्भरहरूबाट पनि भर्चुअल मेसिनमा प्रत्यक्ष पहुँच सम्भव
- आन्तरिक सर्भर वा सेवा प्रकाशन आदि, पूर्ण सञ्चालनका लागि आदर्श
कस्टम ब्रिजको निर्माण- सेटिङ प्रक्रिया (LAN पहुँचका लागि)
उत्पादन सर्भर वा अन्य PC बाट प्रत्यक्ष भर्चुअल मेसिनमा पहुँच चाहिने अवस्थामा, ब्रिज नेटवर्क सिर्जना गर्नुहोस्। निम्न सामान्य प्रक्रिया हो (उदाहरण: होस्ट पक्षको भौतिक NIC लेeth0
को अवस्था)।- bridge-utils को स्थापना (पहिले नै स्थापना भएको छ भने अनावश्यक)
sudo apt install bridge-utils
- नेटवर्क सेटिङ फाइलको सम्पादन Ubuntu 18.04 पछि Netplan प्रयोग हुन्छ।
/etc/netplan/01-netcfg.yaml
जस्ता सेटिङ फाइलहरू सम्पादन गर्नुहोस्। उदाहरण:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
bridges:
br0:
interfaces: [eth0]
dhcp4: yes
- सेटिङको लागू गर्ने
sudo netplan apply
- KVM पक्षमा नयाँ ब्रिज (br0) लाई नेटवर्कमा थप्ने virt-manager वा virsh मार्फत भर्चुअल मेसिनको नेटवर्क एडाप्टरलाई br0 मा स्विच गर्नुहोस्।
भर्चुअल मेसिनको IP ठेगाना स्थिर- पोर्ट फर्वार्ड सेटिङ
- IP ठेगानाको स्थिर भर्चुअल मेसिनको OS पक्षमा स्थिर IP ठेगाना सेट गर्नुहोस् वा DHCP सर्भरमा MAC ठेगानाका अनुसार स्थिर आवंटन गर्ने सामान्य हो।
- पोर्ट फर्वार्ड सेटिङ (NAT प्रयोग गर्दा) virsh कमान्ड वा libvirt को XML सेटिङ मार्फत, विशेष पोर्ट (उदाहरण: SSH वा वेब सर्भर) लाई होस्ट→भर्चुअल मेसिनमा ट्रान्सफर गर्न सकिन्छ। उदाहरण (SSH लाई 22 नम्बर पोर्टमा ट्रान्सफर):
virsh nat-forward --network default --add-port tcp:2222:22
※ विस्तृत सेटिङ libvirt को सेटिङ फाइल सम्पादन वा firewalld मार्फत नियन्त्रण पनि सम्भव छ।भण्डारण व्यवस्थापन र डिस्क सञ्चालन
KVM मा भर्चुअल मेसिन सञ्चालन गर्दा, भण्डारणको डिजाइन र डिस्कको व्यवस्थापन पनि अत्यन्त महत्वपूर्ण छ। यहाँ, भर्चुअल डिस्कका प्रकारहरू, निर्माण विधि, भण्डारण पूलको व्यवस्थापन, थप डिस्कको विस्तार र स्न्यापसटको उपयोग बारे व्याख्या गर्दछौं।भर्चुअल डिस्क (qcow2, raw) का प्रकारहरू र उपयोग
KVM को भर्चुअल डिस्कहरूमा मुख्य रूपमा निम्न २ प्रकारहरू छन्।- qcow2 ढाँचा
- KVM को मानक भर्चुअल डिस्क ढाँचा
- स्न्यापसटको प्राप्ति वा डिस्कको संक्षिप्तीकरण, स्थान बचतलाई समर्थन गर्दछ
- लचिलो सञ्चालन वा परीक्षण वातावरणका लागि उपयुक्त
- raw ढाँचा
- डाटाको रूपान्तरण वा संक्षिप्तीकरण नहुने सरल ढाँचा
- प्रदर्शनलाई जोड दिँदा वा भण्डारणको IO प्रदर्शनलाई अधिकतम बनाउन चाहिने अवस्थामा प्रभावकारी
भण्डारण पूलको निर्माण र व्यवस्थापन
KVM मा “भण्डारण पूल” भन्ने संयन्त्रबाट, भर्चुअल मेसिनले प्रयोग गर्ने डिस्क क्षेत्रलाई व्यवस्थापन गर्दछ।- डिफल्ट भण्डारण पूल स्थापना सिधैपछि,
/var/lib/libvirt/images/
डिफल्ट भण्डारण पूल हो। भर्चुअल डिस्क यो डाइरेक्टरी भित्र निर्माण गरिन्छ। - नयाँ भण्डारण पूलको निर्माण (उदाहरण)
- डाइरेक्टरी तयार गर्नुहोस्
sudo mkdir /data/kvm-images sudo chown libvirt-qemu:kvm /data/kvm-images
- virt-manager वा virsh कमान्डबाट नयाँ पूल थप्नुहोस् virsh को अवस्थामा:
virsh pool-define-as --name mypool --type dir --target /data/kvm-images virsh pool-autostart mypool virsh pool-start mypool
भर्चुअल डिस्कको विस्तार र स्न्यापसटको उपयोग
- भर्चुअल डिस्कको विस्तार डिस्क क्षमता बढाउन चाहिने अवस्थामा,
qemu-img
कमान्डबाट विस्तार सम्भव छ (qcow2, raw दुवै समर्थन)।
sudo qemu-img resize /var/lib/libvirt/images/ubuntu-vm.qcow2 +10G
त्यसपछि, भर्चुअल मेसिनको OS मा पर्टिसन वा फाइल सिस्टमलाई विस्तार गर्न आवश्यक छ।- स्न्यापसटको उपयोग qcow2 ढाँचाको डिस्कमा, स्न्यापसट निर्माण गरेर कुनै पनि समयको अवस्थालाई बचत गर्न सकिन्छ।
virsh snapshot-create-as <भर्चुअल मेसिन नाम> <स्न्यापसट नाम>
स्न्यापसट सेटिङ गल्ती वा अपडेट अघिको ब्याकअप, परीक्षण वातावरणको रोलब्याक आदिमा अत्यन्त उपयोगी छ।गेस्ट OS को स्थापना र सञ्चालन
KVM को भर्चुअल मेसिनमा वास्तविक OS स्थापना गर्नुहोस् र आरामदायक रूपमा सञ्चालन गर्नका लागि बुँदाहरू व्याख्या गर्दछ। यहाँ प्रमुख गेस्ट OS को स्थापना प्रक्रिया, ISO इमेजको ह्यान्डलिङ, सञ्चालन समयको प्रदर्शन सुधार उपायहरू सम्म समावेश गर्दछ।प्रमुख गेस्ट OS हरूको स्थापना प्रक्रिया
KVM मा, Ubuntu, CentOS, Windows जस्ता विभिन्न OS लाई भर्चुअल मेसिनको रूपमा चलाउन सकिन्छ। यहाँ Ubuntu र Windows को स्थापना उदाहरणहरू प्रस्तुत गर्दछौं।- Ubuntu को अवस्थामा
- Ubuntu आधिकारिक साइटबाट नवीनतम संस्करणको ISO इमेज डाउनलोड गर्नुहोस्।
- virt-manager प्रयोग गर्दा “nयाँ भर्चुअल मेसिन निर्माण” स्क्रिनमा “स्थानीय स्थापना मिडिया” छान्नुहोस् र डाउनलोड गरिएको ISO फाइल निर्दिष्ट गर्नुहोस्।
- भर्चुअल मेसिनको CPU, मेमोरी, डिस्क क्षमता सेट गर्नुहोस् र स्थापना सुरु गर्नुहोस्।
- स्क्रिनको निर्देशन अनुसार, सामान्य Ubuntu स्थापना कार्य अगाडि बढाउनुहोस्।
- Windows को अवस्थामा
- Microsoft आधिकारिकबाट Windows को मूल्यांकन संस्करण ISO इमेज आदि प्राप्त गर्नुहोस्।
- virt-manager वा virt-install ले नयाँ भर्चुअल मेसिन निर्माण गर्नुहोस् र ISO फाइल छान्नुहोस्।
- Windows को अवस्थामा “virtio ड्राइभर” स्थापना गर्दा डिस्क वा नेटवर्कको प्रदर्शन सुधार हुन्छ। virtio ISO लाई पनि भर्चुअल CD ड्राइभमा माउन्ट गरेर, सेटअप समयमा लागू गर्नु राम्रो हुन्छ।
ISO इमेज प्राप्ति र लोडिङ
- गेस्ट OS को स्थापनाका लागि, आधिकारिक साइटबाट डाउनलोड गरिएको ISO इमेज प्रयोग गर्नुहोस्।
- भर्चुअल मेसिन निर्माण समय, ISO फाइलको पाथ निर्दिष्ट गरेमा, भर्चुअल CD/DVD को रूपमा माउन्ट गर्न सकिन्छ।
- आवश्यक अनुसार, धेरै ISO (OS र ड्राइभर) लाई एकैसाथ माउन्ट पनि गर्न सकिन्छ।
गेस्ट OS सञ्चालन समयका टिप्स र प्रदर्शन सुधार उपायहरू
- स्रोत आवंटनको अनुकूलन भर्चुअल मेसिनलाई आवंटित गर्ने CPU वा मेमोरी लाई उपयुक्त रूपमा सेट गर्नुहोस्। आवश्यक भन्दा बढी स्रोत आवंटन गर्दा, होस्ट OS वा अन्य भर्चुअल मेसिनमा प्रभाव पर्छ।
- virtio ड्राइभरको परिचय गेस्ट OS जुन Windows वा पुरानो Linux हो भने, virtio ड्राइभर स्थापना गरेर डिस्क वा नेटवर्कको प्रदर्शन धेरै सुधार हुन्छ।
- अनावश्यक सेवाहरूको रोक गेस्ट OS मा प्रयोग नहुने सेवा वा स्थायी कार्यक्रमहरूलाई असक्षम गरेर, स्रोतहरूलाई प्रभावकारी रूपमा प्रयोग गर्न सकिन्छ।
- KVM गेस्ट टुलको उपयोग QEMU Guest Agent परिचय गरेर, भर्चुअल मेसिनको जानकारी प्राप्ति वा शटडाउन आदि कार्यहरू थप सटीक हुन्छन्।
व्यावहारिक प्रयोग उदाहरणहरू र स्वचालन टिप्स
KVM केवल भर्चुअल मेसिनहरूको निर्माण र सञ्चालनमा सीमित छैन, विभिन्न कार्यहरू वा विकास दृश्यहरूमा प्रयोग गरिन्छ। साथै, स्क्रिप्टहरू वा स्वचालन उपकरणहरूसँग संयोजन गरेर, व्यवस्थापन कार्यहरूको दक्षता पनि सम्भव छ। यो अध्यायमा, KVM को व्यावहारिक प्रयोग उदाहरणहरू वा स्वचालनका सुझावहरू प्रस्तुत गरिन्छ।सर्भर प्रयोजनका लागि प्रयोग उदाहरणहरू
- विकास-टेस्ट वातावरणको विभाजन प्रोजेक्ट अनुसार भर्चुअल मेसिनहरू तयार गरेर, सफ्टवेयरको संस्करण वा संरचना स्वतन्त्र रूपमा परिवर्तन गर्न सकिने वातावरण प्राप्त गर्न सकिन्छ। नयाँ संस्करणको OS वा सफ्टवेयर परीक्षण गर्दा पनि, उत्पादन वातावरणमा प्रभाव नपारी प्रमाणीकरण गर्न सकिन्छ जुन ठूलो फाइदा हो।
- कम्पनीभित्रका सेवाहरूको निर्माण फाइल सर्भर, वेब सर्भर, डाटाबेस सर्भर आदि, धेरै सेवाहरूलाई भर्चुअल मेसिन इकाइमा विभाजन गरेर सञ्चालन गरेर, त्रुटि घटना समयमा प्रभाव क्षेत्र सीमित गर्न सकिन्छ। साथै, भर्चुअल मेसिन इकाइमा ब्याकअप वा स्न्यापसट पनि सजिलो छ।
CLI वा Ansible आदि द्वारा स्वचालित निर्माण उदाहरण
- CLI द्वारा भर्चुअल मेसिन स्वचालित निर्माण स्क्रिप्ट प्रयोग गरेर
virt-install
वाvirsh
कमान्डहरूलाई स्वचालित रूपमा निष्पादन गरेमा, धेरै भर्चुअल मेसिनहरूलाई एकैचोटि निर्माण र व्यवस्थापन गर्न सकिन्छ। उदाहरण: शेल स्क्रिप्ट द्वारा भर्चुअल मेसिन निर्माण
for i in {1..5}
do
virt-install --name test-vm-$i --memory 1024 --vcpus 1
--disk size=10 --cdrom /path/to/ubuntu.iso
--os-type linux --os-variant ubuntu20.04 --graphics none --network network=default --noautoconsole
done
- Ansible द्वारा भर्चुअल वातावरणको निर्माण पूर्वाधार स्वचालन उपकरण «Ansible» प्रयोग गरेमा, प्लेबुक लेख्नु मात्र गरेर, KVM भर्चुअल मेसिनको निर्माण वा प्रारम्भिक सेटिङ, एपको स्थापना सम्म एकैचोटि स्वचालित गर्न सकिन्छ। सर्भर संख्याहरू धेरै भएको अवस्था वा संरचना व्यवस्थापनको एकरूपतालाई महत्व दिने अवस्थामा विशेष रूपमा प्रभावकारी छ।
क्लाउड जस्तो सञ्चालन गर्ने सुझावहरू
- भर्चुअल मेसिनहरूको टेम्प्लेटीकरण प्रायः प्रयोग हुने प्रारम्भिक अवस्थाको भर्चुअल मेसिनहरूलाई टेम्प्लेटको रूपमा बचत गरेमा, नयाँ सर्भरको विस्तार एकैछिनमा समाप्त हुन्छ।
- API सहकार्य-वेब आधारित व्यवस्थापन उपकरणको प्रयोग libvirt मा API पनि तयार गरिएको छ, त्यसैले आफ्नै उपकरण वा अन्य व्यवस्थापन प्रणालीसँग सहकार्य पनि सम्भव छ। ठूलो स्तरको वातावरणमा वेब आधारित व्यवस्थापन उपकरण (Cockpit आदि) प्रयोग गरेमा, दृश्यात्मक रूपमा भर्चुअल वातावरण व्यवस्थापन गर्न सकिन्छ।
समस्या निवारण – सामान्य त्रुटि समाधान
KVM वातावरण सञ्चालन गर्दा, भर्चुअल मेसिनको सुरुवात विफलता वा नेटवर्क कनेक्शन खराबी जस्ता विभिन्न समस्याहरू सामना गर्नुपर्न सक्छ। यो अध्यायमा, सामान्य समस्याहरूको ढाँचा र तिनको समाधान विधि, थप रूपमा लगहरूको जाँच प्रक्रिया र समर्थन स्रोतहरूको उपयोग विधि बारे व्याख्या गरिएको छ।
KVM मा सजिलै उत्पन्न हुने समस्या उदाहरणहरू
- भर्चुअल मेसिन सुरु हुँदैन / सिर्जना हुन सक्दैन
- भर्चुअलाइजेशन समर्थन सुविधा (Intel VT, AMD-V) निष्क्रिय छ
- निर्धारित मेमोरी वा डिस्क क्षमता अपर्याप्त छ
- स्टोरेज पूल वा ISO इमेजको पथ गलत छ
- नेटवर्क कनेक्शन हुन सक्दैन
- भर्चुअल मेसिनको नेटवर्क एडाप्टर सही रूपमा सेटअप गरिएको छैन
- ब्रिज वा NAT को सेटिङ गल्ती, DHCP वितरण खराबी
- फायरवाल वा सुरक्षा सेटिङको प्रभाव
- प्रदर्शन अत्यधिक कम छ
- स्रोतको अत्यधिक / अपर्याप्त वितरण
- Virtio ड्राइभरहरू स्थापना गरिएको छैन (विशेष गरी Windows गेस्ट)
- डिस्क I/O बोटलनेक बनेको छ
लग जाँच विधि – आधारभूत समाधान प्रवाह
समस्या उत्पन्न भएमा, पहिले लगहरूको जाँच महत्वपूर्ण छ।- प्रणाली लगको जाँच
sudo journalctl -xe
KVM वा libvirt सम्बन्धित त्रुटि सन्देशहरू निस्किएको छ कि जाँच गर्नुहोस्।- libvirt लगको जाँच
/var/log/libvirt/
अन्तर्गतका लग फाइलहरू (उदाहरण: libvirtd.log) पनि प्रभावकारी छन्। - भर्चुअल मेसिन प्रत्येकको लग virt-manager वा virsh बाट भर्चुअल मेसिनको अवस्था जाँच गर्नुहोस्, “विवरण” वा “लग” ट्याबमा त्रुटि सामग्री जाँच गर्नुहोस्।
- नेटवर्क अवस्थाको जाँच
ip a
brctl show
virsh net-list --all
बाट नेटवर्कको कनेक्शन स्थिति वा ब्रिज सेटिङ जाँच गर्नुहोस्। समस्या सम्बोधनको आधारभूत प्रवाह- अवस्था व्यवस्थित गर्नुहोस्, कुन समयबाट समस्या उत्पन्न भएको हो विशिष्ट गर्नुहोस्
- माथिका लगहरू वा सेटिङहरू जाँच गर्नुहोस्
- आवश्यकताअनुसार सेटिङ फाइलहरू सुधार गर्नुहोस्, सेवाको पुन: सुरुवात वा भर्चुअल मेसिनको पुन: सिर्जना प्रयास गर्नुहोस्
आधिकारिक दस्तावेज वा समुदायको उपयोग विधि
समस्या परेमा, निम्न सूचना स्रोतहरू धेरै उपयोगी हुन्छन्।- आधिकारिक दस्तावेज Ubuntu आधिकारिक KVM दस्तावेज libvirt आधिकारिक दस्तावेज
- समुदाय फोरम – Q&A साइटहरू
- Ubuntu Forums
- Ask Ubuntu
- Stack Overflow
- त्रुटि सन्देशबाट खोजी उत्पन्न त्रुटि सन्देशलाई जापानी र अंग्रेजी दुवैबाट Google खोजी गर्दा, धेरै उदाहरणहरू फेला पर्छन्।
सुरक्षा र प्रदर्शन अनुकूलन
KVM वातावरणलाई सुरक्षित र आरामदायी रूपमा सञ्चालन गर्नका लागि, सुरक्षा उपायहरू र प्रदर्शनको अनुकूलन आवश्यक छ। यहाँ, भर्चुअलाइजेशन आधारभूत संरचनालाई सुरक्षित राख्नका लागि बुँदाहरू र कुशल स्रोत उपयोगका लागि व्यावहारिक ज्ञानहरू प्रस्तुत गर्दछौं।भर्चुअलाइजेशन वातावरणको सुरक्षा सुदृढीकरण उपायहरू
- अनावश्यक सेवाहरूको रोकावट–न्यूनतम संरचना भर्चुअल मेसिनभित्र प्रयोग नहुने सेवाहरूलाई निष्क्रिय गर्नुहोस्, आक्रमणका लक्ष्यहरूलाई न्यूनतममा सीमित गर्नुहोस्। साथै, होस्ट OS लाई पनि यस्तै अनावश्यक सेवाहरू रोक्नुहोस्।
- फायरवाल र पहुँच प्रतिबन्धको कडाइ होस्ट र गेस्ट दुवैमा फायरवाल (उदाहरण: ufw वा firewalld) लाई उपयुक्त रूपमा सेटअप गर्नुहोस्, बाहिरीबाट अनधिकृत पहुँचलाई अवरुद्ध गर्नुहोस्। SSH पहुँचलाई पोर्ट नम्बर परिवर्तन, सार्वजनिक कुञ्जी प्रमाणीकरण, fail2ban आदि द्वारा सुरक्षित गर्नु सिफारिस गरिन्छ।
- भर्चुअल मेसिनहरूबीचको अलगाव (नेटवर्क सेगमेन्ट विभाजन) महत्त्वपूर्ण सर्भरहरूबीच भर्चुअल नेटवर्कलाई विभाजन गर्नुहोस्, वा भौतिक रूपमा नेटवर्कलाई अलग गर्नुहोस्, जसले कुनै आक्रमणको अवस्थामा क्षतिको विस्तार रोक्न सक्छ।
- नियमित अपडेटहरूको कडाइ होस्ट OS र गेस्ट OS दुवैमा, सुरक्षा पैचहरू वा सफ्टवेयर अपडेटहरूलाई नछुटाउनुहोस्।
स्रोत वितरण अनुकूलन (CPU/मेमोरी/डिस्क I/O)
- स्रोत व्यवस्थापनको आधारभूत भर्चुअल मेसिनहरूमा CPU वा मेमोरीलाई उपयुक्त रूपमा वितरण गर्नुहोस्, होस्ट पक्षमा आराम छोडेर समग्र स्थिरता कायम राख्नुहोस्। अधिक स्रोत वितरणले होस्ट र अन्य भर्चुअल मेसिनहरू दुवैको प्रदर्शन ह्रास निम्त्याउँछ।
- डिस्क I/O को अनुकूलन स्टोरेज प्रदर्शन बोतलनेक बन्न सजिलो हुन्छ, त्यसैले महत्त्वपूर्ण भर्चुअल मेसिनहरूमा उच्च गतिको SSD स्टोरेज वितरण गर्नु प्रभावकारी हुन्छ। यसबाहेक, qcow2 ढाँचामा स्न्यापसटको अत्यधिक प्रयोगले प्रदर्शन ह्रासको कारण बन्न सक्छ, त्यसैले सञ्चालन सन्तुलन विचार गर्नुहोस्।
- virtio ड्राइभरको उपयोग गेस्ट OS मा virtio ड्राइभर लागू गर्नाले डिस्क वा नेटवर्कको प्रदर्शनमा उल्लेखनीय सुधार हुन्छ।
ब्याकअप–स्न्यापसटको स्वचालन
- स्न्यापसटको नियमित प्राप्ति उत्पादन सञ्चालनमा रहेका भर्चुअल मेसिनहरूमा नियमित रूपमा स्न्यापसट प्राप्त गर्नाले विफलताको समयमा तीव्र रिकभरी सम्भव हुन्छ।
- भर्चुअल डिस्क वा सेटिङ फाइलहरूको ब्याकअप भर्चुअल डिस्क इमेज (qcow2 वा raw फाइलहरू) वा libvirt को सेटिङ XML फाइलहरूलाई नियमित रूपमा छुट्टै स्टोरेज वा बाहिरी सर्भरमा ब्याकअप गर्नुहोस्।
- स्वचालन उपकरणहरूसँगको सहकार्य cron वा Ansible जस्ता स्वचालन उपकरणहरू प्रयोग गरेर ब्याकअप वा स्न्यापसट प्राप्तिलाई नियमित रूपमा निष्पादन गर्न सकिन्छ।
सारांश – भविष्यका सिकाइ स्रोतहरू
यो लेखमा, Ubuntu मा KVM प्रयोग गरेर भर्चुअलकरण वातावरणको निर्माणदेखि सञ्चालन, व्यावहारिक उपयोग विधिहरू वा समस्या निवारण, र सुरक्षा तथा प्रदर्शन अनुकूलनसम्म, व्यापक रूपमा व्याख्या गरिएको छ। अन्तमा, अघिल्लो सामग्रीलाई समीक्षा गर्दै, थप सीप विकासमा सहयोगी सिकाइ स्रोतहरू प्रस्तुत गर्दछु।यो लेखको सारांश
- KVM को अवलोकन र फाइदाहरू KVM खुला स्रोत र उच्च प्रदर्शन भएको भर्चुअलकरण प्रविधि हो, र Ubuntu सर्वर केन्द्रित धेरै दृश्यहरूमा प्रयोग गरिन्छ।
- स्थापनादेखि सञ्चालनसम्मको प्रवाह CPU भर्चुअलकरण समर्थन सुविधाको जाँचदेखि, आवश्यक प्याकेजहरूको स्थापना, प्रयोगकर्ता अधिकार सेटिङ, भर्चुअल मेसिनको निर्माण र आधारभूत सञ्चालनसम्म, चरणबद्ध रूपमा व्याख्या गरियो।
- नेटवर्क – स्टोरेज – सञ्चालनका व्यावहारिक बुँदाहरू डिफल्ट NAT वा ब्रिज जस्ता उपयोग अनुसार नेटवर्क कन्फिगरेसन, स्टोरेज पूलको व्यवस्थापन वा डिस्क विस्तार, स्न्यापसटको उपयोग विधि पनि सिकियो।
- समस्या सम्बोधन र सुरक्षा सामान्य त्रुटिहरूको सम्बोधन विधि, लग हेर्ने तरिका, र सुरक्षित तथा कुशल सञ्चालनका लागि सुरक्षा र अनुकूलनका बुँदाहरू पनि प्रस्तुत गरियो।
भविष्यका चरणहरू – सिफारिस गरिएका सिकाइ स्रोतहरू
- आधिकारिक कागजातहरू
- Ubuntu आधिकारिक KVM गाइड
- libvirt आधिकारिक कागजात
- Ask Ubuntu
- Qiita KVM ट्याग
- Stack Overflow (अंग्रेजी)
कमाण्ड छिटो सन्दर्भ तालिका र सामान्यतया प्रयोग गरिने सेटिङ उदाहरणहरू (चीट शीट)
KVM वा libvirt प्रयोग गर्दा, सामान्यतया प्रयोग गरिने कमाण्डहरू र सेटिङ उदाहरणहरूलाई हातमा राख्नु धेरै सुविधाजनक हुन्छ। यस अध्यायमा, दैनिक भर्चुअल मेसिन व्यवस्थापनका लागि उपयोगी प्रतिनिधि कमाण्डहरू, र नेटवर्क र डिस्क सेटिङ उदाहरणहरूलाई संक्षिप्त रूपमा प्रस्तुत गर्दछौं।KVM/virsh/virt-manager को मुख्य कमाण्ड सूची
- भर्चुअल मेसिनको सूची प्रदर्शन
virsh list --all
- भर्चुअल मेसिनको सुरुवात
virsh start <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको बन्द गर्ने
virsh shutdown <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको जबरजस्ती रोक्ने
virsh destroy <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको सिर्जना (virt-install)
virt-install --name <नाम> --memory <MB> --vcpus <कोर संख्या>
--disk size=<GB> --cdrom <ISO फाइल पथ>
--os-type linux --os-variant ubuntu20.04
- भर्चुअल मेसिनको हटाउने (केवल सेटिङ)
virsh undefine <भर्चुअल मेसिन नाम>
नेटवर्क ब्रिज सम्बन्धी सेटिङ उदाहरणहरू
- वर्तमान नेटवर्क सूची प्रदर्शन
virsh net-list --all
- नयाँ नेटवर्कको सिर्जना (XML उदाहरण)
/etc/libvirt/qemu/networks/
अन्तर्गत XML फाइल राख्नुहोस्,virsh net-define <फाइल नाम>
,virsh net-start <नेटवर्क नाम>
द्वारा सक्रिय गर्नुहोस्
स्टोरेज व्यवस्थापन र डिस्क सञ्चालन उदाहरणहरू
- स्टोरेज पूल सूची
virsh pool-list --all
- भर्चुअल डिस्कको विस्तार
sudo qemu-img resize /path/to/disk.qcow2 +10G
- स्न्यापसट सिर्जना
virsh snapshot-create-as <भर्चुअल मेसिन नाम> <स्न्यापसट नाम>
सामान्यतया प्रयोग गरिने अन्य टिप्सहरू
- भर्चुअल मेसिनको स्वचालित सुरुवात सेटिङ
virsh autostart <भर्चुअल मेसिन नाम>
- भर्चुअल मेसिनको विस्तृत जानकारी प्राप्त गर्ने
virsh dominfo <भर्चुअल मेसिन नाम>
- virt-manager को सुरुवात (GUI वातावरण)
virt-manager
FAQ (सामान्य प्रश्नहरू)
KVM वा Ubuntu भर्चुअलाइजेसन वातावरणको निर्माण र सञ्चालन बारे, पाठकहरूबाट प्रायः प्राप्त हुने प्रश्नहरू र तिनका उत्तरहरू संकलित गरेका छौं। समस्या समाधान वा सञ्चालनका सुझावहरूको रूपमा कृपया उपयोग गर्नुहोस्।Q1: KVM र VirtualBox वा VMware को भिन्नता के हो?
A1: KVM लिनक्स कर्नेलमा एकीकृत उच्च प्रदर्शन भर्चुअलाइजेसन आधार हो, जसले सर्वर प्रयोग वा पूर्ण सञ्चालनका लागि उपयुक्त छ। VirtualBox डेस्कटप प्रयोगका लागि निर्देशित छ, VMware व्यावसायिक समर्थन वा ठूलो पैमाना सञ्चालनका लागि धनी कार्यक्षमताहरू छन्, तर KVM लागत कम राखेर उच्च प्रदर्शन प्राप्त गर्न चाहने अवस्थामा सिफारिस गरिन्छ।Q2: भर्चुअल मेसिनको ब्याकअप र पुनर्स्थापना कसरी गर्ने?
A2: भर्चुअल डिस्क इमेज (qcow2 वा raw फाइल) लाई प्रतिलिपि गरेर सजिलै ब्याकअप गर्न सकिन्छ। साथै, virsh को स्न्यापसट सुविधा वा भर्चुअल मेसिनको XML कन्फिगरेसन फाइल पनि सँगै बचत गर्दा पुनर्स्थापना सहज हुन्छ।Q3: USB डिभाइसलाई भर्चुअल मेसिनमा प्रयोग गर्न चाहँदा?
A3: virt-manager को ‘हार्डवेयर थप्ने’ सुविधा वा virsh मा USB पासथ्रु सेटिङ गरेर, USB मेमोरी, बाह्य HDD, प्रिन्टर आदि लाई भर्चुअल मेसिनमा पहिचान गराउन सकिन्छ।Q4: भर्चुअल मेसिनलाई होस्ट सुरु हुँदा स्वतः सुरु गर्न चाहँदा?
A4:virsh autostart <भर्चुअल मेसिन नाम>
कमान्ड चलाउँदा, त्यो भर्चुअल मेसिन होस्ट OS को सुरुवातसँगै स्वतः सुरु हुने गरी सेट अप गर्न सकिन्छ।