इस लेख में हम देखेंगे कि Linux RHEL या CentOS चलाने वाले सर्वर पर KVM हाइपरवाइज़र को कैसे इंस्टॉल और कॉन्फ़िगर करें। हम दिखाएंगे कि KVM में वर्चुअल मशीन कैसे बनाएं, इसकी सेटिंग्स कैसे बदलें और गेस्ट ऑपरेटिंग सिस्टम कैसे इंस्टॉल करें। हम VM को प्रबंधित करने के कुछ विशिष्ट कमांड्स का भी वर्णन करेंगे।
KVM (कर्नेल-बेस्ड वर्चुअल मशीन) एक लिनक्स हाइपरवाइज़र है जो Intel VT- या AMD SVM हार्डवेयर वर्चुअलाइज़ेशन तकनीकों का उपयोग करता है। KVM का उपयोग करके, आप अपने स्वयं के वर्चुअल हार्डवेयर के साथ आइसोलेटेड वर्चुअल मशीन बना सकते हैं: नेटवर्क एडाप्टर्स, डिस्क, ग्राफिक्स कार्ड या अन्य डिवाइस। आप वर्चुअल मशीन पर कोई भी गेस्ट OS इंस्टॉल कर सकते हैं (न केवल लिनक्स)।
CentOS/RHEL पर KVM कैसे इंस्टॉल करें?
जब आप अपने सर्वर पर KVM कॉन्फ़िगर करते हैं, तो आपको CPU जांच से शुरू करना चाहिए। आपको यह सुनिश्चित करना होगा कि आपके होस्ट पर इंस्टॉल CPU हार्डवेयर वर्चुअलाइज़ेशन सपोर्ट करता है। अपने सर्वर कंसोल में निम्न कमांड चलाएं:
# cat /proc/cpuinfo | egrep "(vmx|svm)"
यदि आपका प्रोसेसर VT-x सपोर्ट करता है, तो आपको इस तरह का आउटपुट दिखाई देगा:

यदि कमांड ने कुछ भी वापस नहीं किया, लेकिन आप जानते हैं कि आपका CPU वर्चुअलाइज़ेशन सपोर्ट करता है, तो सुनिश्चित करें कि यह विकल्प सर्वर BIOS में अक्षम नहीं है। Intel Virtualization Technology या SVM MODE विकल्प देखें।
मेरा सर्वर VT-x सपोर्ट करता है और यह सक्षम है, इसलिए हम CentOS/RHEL पर yum/dnf का उपयोग करके आवश्यक पैकेज इंस्टॉल कर सकते हैं:
# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y
- qemu-kvm – KVM हाइपरवाइज़र
- libvirt – वर्चुअलाइज़ेशन मैनेजमेंट लाइब्रेरीज़
- virt-install – KVM वर्चुअल मशीनों को प्रबंधित करने के लिए CLI टूल्स
आपके लिनक्स सर्वर पर बहुत सारे पैकेज इंस्टॉल होंगे। सुनिश्चित करें कि इंस्टॉलेशन के दौरान कोई त्रुटि न हो।
फिर libvirtd सेवा को स्टार्टअप में जोड़ें और इसे चलाएं::
# systemctl enable libvirtd
# systemctl start libvirtd

सुनिश्चित करें कि kvm_intel और kvm कर्नेल मॉड्यूल लोड हो गए हैं:
# lsmod | grep kvm
kvm_intel 188688 0 kvm 636931 1 kvm_intel irqbypass 13503 1 kvm
यदि कमांड कुछ भी वापस नहीं करता, तो अपने होस्ट को रीस्टार्ट करें और फिर से जांचें।
KVM के लिए ब्रिज नेटवर्किंग बनाएं और कॉन्फ़िगर करें
फिर वर्चुअल मशीन डिस्क और ISO इमेज स्टोर करने के लिए डायरेक्टरी बनाएं:
# mkdir -p /vz/{disk,iso}
ताकि आपकी वर्चुअल मशीनों की इंटरनेट एक्सेस हो, आपको ब्रिज का उपयोग करके नेटवर्क कॉन्फ़िगर करना होगा। इसके लिए आपको bridge-utils की आवश्यकता होगी। इस कमांड का उपयोग करके जांचें कि क्या यह आपके लिनक्स होस्ट पर इंस्टॉल है:
# rpm -qa | grep bridge-utils
यदि आवश्यक हो तो इंस्टॉल करें:
# yum install bridge-utils -y
पैकेज इंस्टॉल करने के बाद, ऑपरेटिंग सिस्टम में virbr0 नेटवर्क इंटरफ़ेस दिखाई दिया:
# ip a

ब्रिज बनाने के लिए, आपको अपने सर्वर नेटवर्क इंटरफ़ेस की कॉन्फ़िगरेशन फाइल सेट करनी होगी:
# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak – फाइल का बैकअप लें
# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 — संपादित करने के लिए खोलें
फाइल की सामग्री हटाएं और इसे निम्न से बदलें:
DEVICE="enp1s0f0" ONBOOT="yes" BRIDGE=br0
आपके मामले में, इंटरफ़ेस नाम अलग हो सकता है (ip a कमांड का उपयोग करके प्राप्त करें)।
फिर एक फाइल बनाएं:
# nano /etc/sysconfig/network-scripts/ifcfg-br0
निम्न कॉन्फ़िगरेशन युक्त:
DEVICE="br0" TYPE=BRIDGE ONBOOT=yes BOOTPROTO=static IPADDR="सर्वर_का_IP_पता" NETMASK="255.255.255.0" GATEWAY="डिफ़ॉल्ट_गेटवे" DNS1="8.8.8.8" DNS2="8.8.4.4"
आपको अपने सर्वर का IP पता और डिफ़ॉल्ट गेटवे निर्दिष्ट करना होगा। नेटवर्क इंटरफ़ेस कॉन्फ़िगरेशन फाइल संपादित करने के बाद, नेटवर्क रीस्टार्ट करें:
# service network restart
यदि नेटवर्क रीस्टार्ट के बाद आप अपने सर्वर तक नहीं पहुंच सकते, तो होस्ट को भी रीस्टार्ट करने का प्रयास करें। कभी-कभी ब्रिज को सही ढंग से कॉन्फ़िगर करना आवश्यक होता है।
ब्रिज स्थिति देखने के लिए, इस कमांड का उपयोग करें:
# brctl show
bridge name bridge id STP enabled interfaces br0 8000.ac1f6b654321 no enp1s0f0 virbr0 8000.525400abcdef1 yes virbr0-nic
अंतिम चरण पर, नेटवर्क ट्रैफिक फॉरवर्डिंग कॉन्फ़िगर करें:
# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
फिर libvirtd रीस्टार्ट करें:
# service libvirtd restart
बुनियादी KVM नेटवर्क कॉन्फ़िगरेशन पूरा हो गया है, और आप वर्चुअल मशीन बना सकते हैं।
KVM में वर्चुअल मशीन बनाना
वर्चुअल मशीन बनाने से पहले, मैंने एक आधिकारिक मिरर से /vz/iso में सेंटओएस 8 इमेज डाउनलोड की:
# cd /vz/iso && wget https://mirror.imt-systems.com/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso
नई KVM वर्चुअल मशीन बनाने के लिए, निम्न चलाएं:
virt-install -n test-centosvm \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=4 --cpu host --check-cpu \
--disk path=/vz/disk/test-centosvm.img,size=32 \
--cdrom /vz/iso/CentOS-8.3.2011-x86_64-dvd1.iso \
--graphics vnc,listen=IP,password=p@sswdr0w1 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
test-centosvm— VM नामnoautoconsole– VM बनाने के बाद, आप VM कंसोल से स्वचालित रूप से कनेक्ट नहीं होंगेnetwork– नेटवर्क प्रकार (मेरे मामले में ब्रिज);ram— VM में RAM की मात्रा;vcpus– CPU कोर की संख्या (VM के लिए vCPU कॉन्फ़िगरेशन)disk– वर्चुअल डिस्क, path – डिस्क का पथ, size – डिस्क का आकार (आप इसे बाद में बढ़ा/घटा सकते हैं)cdrom– वर्चुअल CDROM, जिस पर गेस्ट OS इंस्टॉल करने के लिए ISO इमेज माउंट की जाती है;graphics— ग्राफिकल कंसोल का उपयोग करके वर्चुअल मशीन से कनेक्ट करने के पैरामीटर्स। हम VNC का उपयोग करके कनेक्ट करेंगे, इसलिए listen के लिए उस KVM सर्वर का IP पता निर्दिष्ट करें जिस पर आपने VM बनाई है, और वर्चुअल मशीन कंसोल से कनेक्ट करने का पासवर्ड
VM को स्वचालित रूप से बूट करने के लिए, चलाएं:
# virsh autostart test-centosvm
VNC का उपयोग करके KVM VM से कैसे कनेक्ट करें और OS इंस्टॉल करें?
KVM वर्चुअल मशीन से VNC का उपयोग करके कनेक्ट करने के लिए, आपको यह पता लगाना होगा कि यह किस पोर्ट पर चल रहा है:
# virsh vncdisplay test-centovms
IP:0
0 का अर्थ है कि VNC का उपयोग करके कनेक्ट करने का पोर्ट नंबर 5900 है। यदि आपको अलग मान मिलता है, तो कमांड द्वारा वापस किए गए नंबर को 5900 में जोड़ दें।
सर्वर से कनेक्ट करने के लिए VNC का उपयोग करने के लिए, मैं TightVNC का उपयोग कर रहा हूं। इसे चलाएं और अपने सर्वर का IP पता और हमें पहले मिले VNC पोर्ट को निर्दिष्ट करें (डबल कोलन सेपरेटर के साथ)।

Connect पर क्लिक करें और KVM VM बनाते समय आपके द्वारा सेट किया गया पासवर्ड दर्ज करें। यदि आपने इसे सही ढंग से किया है, तो सर्वर कंसोल दिखाई देता है, जिसमें सेंटओएस इंस्टॉलेशन (या कोई अन्य गेस्ट OS, जिसकी इमेज आपने माउंट की है) चल रहा है।

यदि आपके सर्वर पर फ़ायरवॉल सक्षम है, तो firewalld/iptables में VNC के लिए पोर्ट 5900-5910 खोलें (दस पोर्ट पर्याप्त होंगे)। वर्चुअल मशीन पर गेस्ट OS की इंस्टॉलेशन के बाद, सर्वर कंसोल से VM शुरू करें:

KVM वर्चुअल मशीन को बंद करने के लिए, इस कमांड का उपयोग करें:
# virsh shutdown test-centosvm
सभी रजिस्टर्ड KVM वर्चुअल मशीनों की सूची प्रदर्शित करने के लिए:
# virsh list --all
सर्वर कंसोल का उपयोग करके virsh से KVM वर्चुअल मशीनों को प्रबंधित करने के बारे में और जानें (RAM, CPU, डिस्क या नेटवर्क इंटरफेस कैसे जोड़ें)। यदि आप ग्राफिकल इंटरफ़ेस पसंद करते हैं, तो आप virt-manager KVM GUI का उपयोग कर सकते हैं।
बुनियादी KVM होस्ट कॉन्फ़िगरेशन पूरा हो गया है, और एक वर्चुअल मशीन बनाई गई है। आप KVM में कितनी भी वर्चुअल मशीन बना सकते हैं, यह केवल आपके सर्वर संसाधनों और आपकी आवश्यकताओं पर निर्भर करता है।