Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?

इस लेख में हम लोकप्रिय डिस्क प्रकारों के लिए KVM वर्चुअल मशीन डिस्क को रिसाइज़ करने के बारे में बात करेंगे। हम दिखाएंगे कि Linux पर KVM हाइपरवाइज़र में वर्चुअल मशीन डिस्क आकार को डेटा खोए बिना सही तरीके से कैसे बढ़ाया जाए और डिस्क आकार को कम करने के विकल्पों पर चर्चा करेंगे।

KVM वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं/विस्तारित करें?

KVM पर वर्चुअल डिस्क बढ़ाना

आइए 20GB वर्चुअल डिस्क के आकार को बढ़ाने का उदाहरण लेते हैं। वर्चुअल मशीन को उसकी वर्चुअल डिस्क सेटिंग्स बदलने से पहले बंद कर दें।

KVM वर्चुअल मशीन की वर्चुअल डिस्क सेटिंग देखने के लिए, इस कमांड का उपयोग करें:

qemu-img info /path_to_disk

आपको इस तरह का परिणाम दिखाई देगा:

KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?

हम देखते हैं कि आकार दिखाने वाले दो फ़ील्ड हैं: virtual_size और disk_size:

  • virtual_size - वर्चुअल डिस्क का आकार है जो डिस्क बनाते या विस्तारित करते समय सेट किया जाता है (इस उदाहरण में, अधिकतम डिस्क आकार 20GB है);
  • disk_size - डिस्क फ़ाइल का वर्तमान आकार है, यानी डिस्क भौतिक सर्वर पर कितना स्थान घेरती है (केवल qcow डिस्क फॉर्मेट पर लागू होता है)। हमारे उदाहरण में, वर्चुअल डिस्क स्टोरेज पर केवल 1.6GB घेरती है।

KVM डिस्क प्रकारों (फॉर्मेट) के बारे में कुछ शब्द। KVM में वर्चुअल मशीन बनाते समय मैं raw के बजाय qcow2 का उपयोग करने की सलाह देता हूँ। बाद में मैं बताऊँगा कि क्यों।

अगले चरण में, मैं वर्चुअल मशीन के आकार को 5GB बढ़ाऊँगा (डिस्क को ठीक से विस्तारित करने के लिए, वर्चुअल मशीन में कोई स्नैपशॉट नहीं होना चाहिए!)।
# qemu-img resize /path to disk +5G

Image resized.

यदि आप वर्चुअल डिस्क सेटिंग्स जाँचते हैं, तो आप देखेंगे कि इसका विस्तार हो चुका है:

# qemu-img info /path_to_disk

image: /path_to_disk file format: qcow2 virtual size: 25G (26843535600 bytes) disk size: 1.6G cluster_size: 65536 Format specific information: compat: 0.10 refcount bits: 16

हमने अपना काम का एक हिस्सा पूरा कर लिया है, लेकिन हमें गेस्ट OS में भी कुछ कार्रवाइयाँ करने की आवश्यकता है। अब हम दिखाएंगे कि गेस्ट CentOS 7 और Windows Server 2012 R2 में डिस्क आकार कैसे बढ़ाया जाए।

यदि आप KVM हाइपरवाइज़र में अपने VM के लिए एक और वर्चुअल डिस्क जोड़ने जा रहे हैं, तो qemu-img और virsh टूल्स का उपयोग किया जाता है।

CentOS Linux चलाने वाली वर्चुअल मशीन में पार्टीशन को कैसे बढ़ाएं?

KVM सर्वर साइड पर वर्चुअल डिस्क आकार बढ़ाने के बाद, अपनी वर्चुअल मशीन शुरू करें और उससे कनेक्ट करें। हम हार्ड डिस्क पार्टीशन प्रबंधन टूल fdisk का उपयोग करके पार्टीशन और फाइल सिस्टम आकार को बढ़ाएँगे।

SSH के माध्यम से VM गेस्ट OS से कनेक्ट करें और सुनिश्चित करें कि अतिरिक्त 5GB डिस्क स्थान दिखाई देता है।

df –h
fdisk -l

KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?

स्क्रीनशॉट दिखाता है कि /dev/vda2 का आकार 20GB है, और उपलब्ध डिस्क स्थान 25GB है।

आइए /dev/vda2 को अधिकतम उपलब्ध आकार तक बढ़ाएँ:

# fdisk /dev/vda

Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): d Partition number (1,2, default 2): Partition 2 is deleted Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): First sector (1050624-52428799, default 1050624): Using default value 1050624 Last sector, +sectors or +size{K,M,G} (1050624-52428799, default 52428799): Using default value 52428799 Partition 2 of type Linux and of size 24.5 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.

फिर वर्चुअल मशीन को पुनरारंभ करें और नया डिस्क आकार लागू करने वाली कमांड चलाएँ:

# xfs_growfs /dev/vda2

meta-data=/dev/vda2 isize=512 agcount=4, agsize=1277888 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=5111552, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 5111552 to 6422272

# df -h

Filesystem Size Used Avail Use% Mounted on devtmpfs 485M 0 485M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 6.6M 489M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/vda2 25G 1.3G 24G 6% / /dev/vda1 488M 100M 353M 23% /boot tmpfs 100M 0 100M 0% /run/user/0

परिणामस्वरूप, हमें एक विस्तारित पार्टीशन /dev/vda2 मिला। यहाँ हमने वास्तव में क्या किया:

  • fdisk /dev/vda - हमने fdisk चलाया और /dev/vda से कनेक्ट किया;
  • /d - हमने पार्टीशन हटा दिया। डिफ़ॉल्ट रूप से, यह पार्टीशन 2 था जिसकी हमें आवश्यकता थी, इसलिए हमने अगले आइटम में केवल Enter दबाया;
  • /n - हमने एक नया पार्टीशन बनाया और Enter या p दबाया, फिर से Enter दबाया, क्योंकि हम जिस पार्टीशन को बनाने की कोशिश कर रहे थे वह डिफ़ॉल्ट रूप से 2 होगा;
  • पहले और अंतिम सेक्टर को निर्दिष्ट करते समय हम भी केवल Enter दबाते हैं यदि आप पार्टीशन को अधिकतम तक विस्तारित करना चाहते हैं। यदि आप विशिष्ट आकार सेट करना चाहते हैं, तो मेनू में दिखाए अनुसार अंतिम सेक्टर में डिस्क आकार दर्ज करें +size{K,M,G};
  • /w - नई सेटिंग्स लागू करने के लिए।

VM पुनरारंभ के बाद, इस कमांड का उपयोग करके डिस्क जाँचें:

xfs_growfs /dev/vda2

कुछ स्रोत निम्न कमांड का उपयोग करने की सलाह देते हैं:

resize2fs /dev/vda2

लेकिन यह XFS फाइल सिस्टम के लिए काम नहीं करेगा!

इस प्रकार, आपने CentOS 7 चलाने वाली वर्चुअल मशीन पर डिस्क आकार बढ़ा दिया है।

गेस्ट Windows Server में डिस्क आकार कैसे बढ़ाएं?

RDP या VNC का उपयोग करके Windows Server वर्चुअल मशीन से कनेक्ट करें और डिस्क बढ़ाएँ।

  1. Server Manager -> Tools -> Computer Management खोलें;
  2. बाएँ फलक में Storage -> Disk Management चुनें। आपके सभी डिस्क पार्टीशन और जोड़ा गया अनअलोकेटेड स्थान दिखाई देगा; KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?
  3. उस पार्टीशन को चुनें जिसे आप बढ़ाना चाहते हैं और Extend Volume पर क्लिक करें; KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?
  4. डिफ़ॉल्ट रूप से डिस्क आकार बढ़ाने के लिए सभी उपलब्ध स्थान की पेशकश की जाएगी; KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?
  5. विस्तार समाप्त करने के लिए Next पर क्लिक करें। उसके बाद, आपके पार्टीशन का आकार बढ़ जाएगा। KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?

मैं यह नोट करना चाहूँगा कि आपके वर्चुअल मशीन डिस्क विस्तार से पहले मैं वर्चुअल डिस्क का बैकअप लेने की सलाह देता हूँ। वर्चुअल मशीन को रोकें और डिस्क इमेज को कुछ खाली स्थान वाली बैकअप डायरेक्टरी में कॉपी करें। यदि विस्तार प्रक्रिया के दौरान कुछ गलत होता है, तो आप हमेशा बैकअप से वर्चुअल डिस्क इमेज को पुनर्स्थापित कर सकेंगे।

KVM वर्चुअल मशीन के डिस्क आकार को कैसे कम करें?

मेरे काम में मैं अक्सर इस समस्या का सामना करता हूँ, लेकिन दुर्भाग्य से, आप KVM में वर्चुअल मशीन के डिस्क आकार को सुरक्षित रूप से कम नहीं कर सकते। भौतिक स्टोरेज पर वर्चुअल डिस्क आकार को कम करने का एकमात्र स्वीकार्य तरीका डिस्क को कन्वर्ट करना है।

वेब पर बहुत सारे गाइड हैं जो बताते हैं कि KVM वर्चुअल मशीन में डिस्क स्थान कैसे कम करें, लेकिन यह काम नहीं करता।

मैं कुछ उदाहरण दूँगा जिनका मैंने सामना किया और परीक्षण किया।

Qemu का उपयोग करके KVM डिस्क आकार कम करना

कुछ संसाधन qemu टूल के साथ की जाने वाली क्रियाओं का वर्णन करते हैं। वे इस कमांड का उपयोग करके वर्चुअल मशीन डिस्क स्थान को कम करने की पेशकश करते हैं:

qemu-img resize /path_to_disk -5G — डिस्क स्थान को 5G तक छोटा करने के लिए

या निम्न विकल्प जहां आप विशिष्ट वर्चुअल डिस्क आकार सेट करते हैं:

qemu-img resize /path_to_disk 25G — डिस्क आकार को 25G पर सेट करने के लिए

इस कमांड को चलाने के बाद क्या होता है? सर्वर शुरू करने के बाद, सिस्टम बूट नहीं होगा:

Unable to verify superblock, continuing... Sorry, could not find valid secondary superblock. Exiting now.

KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?

मैंने पहले fdisk का उपयोग करके सिस्टम में डिस्क आकार को कम करने की कोशिश की, लेकिन सिस्टम तब भी बूट नहीं होगा भले ही आप भौतिक सर्वर पर अपनी डिस्क को छोटा करने से बचें। और यह काफी तार्किक है। जिस पार्टीशन को हम कम करने की कोशिश कर रहे हैं वह एक सिस्टम पार्टीशन है, और OS बूट नहीं करेगा क्योंकि उस पर जानकारी स्पष्ट रूप से उसके आकार को कम करने की कोशिश करते समय मिटा दी जाती है।

इमेज रिप्लेसमेंट का उपयोग करके वर्चुअल डिस्क आकार कम करना

इन गाइड्स में कम लोकप्रिय विकल्प डिस्क रिप्लेसमेंट का उपयोग करके डिस्क स्थान कम करना है। इसका मतलब है कि आप आवश्यक डिस्क आकार के साथ एक नई वर्चुअल मशीन बनाते हैं। फिर आप नई डिस्क इमेज को पुराने से बदल देते हैं, और यह विभिन्न स्रोतों में वर्णन के आधार पर काम करता है। मैंने इस विधि की जाँच की, और फाइल सिस्टम पिछले विकल्प की तरह ही इनऑपरेबल हो गया। यहाँ कमांड का एक उदाहरण है:

virt-resize /old_disk_image /new_disk_image

ऐसी विधियाँ भी थीं जिन्होंने raw से qcow2 फॉर्मेट में डिस्क कन्वर्जन का उपयोग किया, लेकिन मैं शुरू में मशीनों को इस फॉर्मेट में बनाता हूँ और यहाँ बताया गया है कि मैं ऐसा क्यों करता हूँ।

KVM डिस्क फॉर्मेट और QCOW2 डिस्क कम्प्रेशन

लेख की शुरुआत में मैंने इन दो डिस्क फॉर्मेट का उल्लेख किया था: raw और qcow।

Raw के फायदे अधिकतम प्रदर्शन और सामान्यता हैं। लेकिन इसकी कई कमियाँ हैं, मुख्य हैं:

  • वर्चुअल डिस्क फ़ाइल भौतिक सर्वर पर इसे आवंटित सभी स्थान पर कब्जा कर लेती है;
  • आप स्नैपशॉट नहीं ले सकते।

Qcow2 QEMU और QEMU-KVM हाइपरवाइज़र का मूल फॉर्मेट है। यह KVM में समर्थित अन्य सभी फॉर्मेट से सबसे सुविधाजनक वर्चुअल डिस्क फॉर्मेट है। डिस्क इमेज वर्चुअल मशीन में डेटा जमा होने के साथ बढ़ती है, और स्नैपशॉट समर्थित हैं।

Qcow2 के क्या फायदे हैं? आपको अपने वर्चुअल डिस्क का आकार कम करने की आवश्यकता नहीं है क्योंकि यह सर्वर स्टोरेज पर केवल उतना ही स्थान घेरता है जितना इसे चाहिए। यदि आपके सर्वर पर डेटा लगातार ओवरराइट होता है, और डिस्क फूल गई है, तो आप इसे आसानी से कंप्रेस कर सकते हैं। आइए इस विकल्प पर विचार करें। मैं कुछ वर्चुअल डिस्क स्थान को जीरो से भरूँगा और फिर फ़ाइल को हटा दूँगा:

dd if=/dev/zero of=/mytempfile
rm -rf /mytempfile

KVM: वर्चुअल मशीन डिस्क आकार को कैसे बढ़ाएं या घटाएं?

जब आप इसे अपने सर्वर से जाँचते हैं, तो पहले डिस्क इमेज का आकार 2.4G था, और फिर यह 5.9G हो गया:

# du -sh /image_path

2.4G *****

# du -sh /image_path

5.9G *****

इसका मतलब है कि वर्चुअल मशीन से जानकारी हटाने के बाद, वर्चुअल डिस्क आकार छोटा नहीं हुआ। वर्चुअल डिस्क फ़ाइल को उसका वास्तविक आकार प्राप्त करने के लिए, मैं निम्न विधि का उपयोग करता हूँ:

वर्चुअल डिस्क फ़ाइल का बैकअप लें, वर्चुअल मशीन को रोकें और फिर निम्न चरण करें:

qemu-img convert -O qcow2 /old_image /new_image

फिर आप दोनों डिस्क के आकार की तुलना कर सकते हैं:

# du -sh /new_disk

1.6G /****

# du -sh /old_disk

5.8G /****

जैसा कि आप देख सकते हैं, कंप्रेस्ड डिस्क का आकार 1.6G है। नई डिस्क इमेज फ़ाइल का नाम बदलें जैसा आपको चाहिए और वर्चुअल मशीन शुरू करें:
# df -h

Filesystem Size Used Avail Use% Mounted on devtmpfs 485M 0 485M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 6.6M 489M 2% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/vda2 25G 1.3G 24G 6% / /dev/vda1 488M 100M 353M 23% /boot tmpfs 100M 0 100M 0% /run/user/0

यह विधि काम करती है। जब से मैं इसका उपयोग कर रहा हूँ, मेरे पास ऐसी कोई स्थिति नहीं आई जब वर्चुअल मशीन में फाइल सिस्टम विफल हुआ हो। लेकिन मैं डेटा खोने से बचने के लिए कुछ भी करने से पहले डिस्क का बैकअप लेने की पुरजोर सलाह देता हूँ।

इस लेख में मैं बस इतना ही बताना चाहता था। यदि इस वेबसाइट के विज़िटर्स में से कोई KVM पर डिस्क आकार कम करने के अन्य वास्तव में कार्रवाई योग्य तरीके जानता है (कम्प्रेशन नहीं), तो उन्हें यहाँ वर्णन करें और मैं उनका परीक्षण करूँगा।

  1. विंडोज 10 पर वर्चुअल मशीन बनाने की चरण-दर-चरण मार्गदर्शिका विंडोज 10 पर वर्चुअल मशीन बनाने की चरण-दर-चरण मार्गदर्शिका

    इस लेख में मैं आपको दिखाऊंगा कि कैसे आप विंडोज 10 मशीन पर एक वर्चुअल मशीन बना सकते हैं। एक वर्चुअल मशीन अपने मौजूदा ऑपरेटिंग सिस्टम को रीइंस्टॉल किए बिना एक दूसरा ऑपरेटिंग सिस्टम अपनी मशीन पर चलाने का एक आदर्श तरीका है। यह नए ऑपरेटिंग सिस्टम को टेस्ट करने के लिए एकदम सही है। विंडोज 10 में वर्चुअल

  1. ESXi 6.7 हाइपरवाइज़र पर वर्चुअल मशीन बनाने की चरण-दर-चरण मार्गदर्शिका ESXi 6.7 हाइपरवाइज़र पर वर्चुअल मशीन बनाने की चरण-दर-चरण मार्गदर्शिका

    vSphere हाइपरवाइज़र ESXi इंस्टॉल करना समाप्त करने के बाद सबसे आम और महत्वपूर्ण कार्यों में से एक है, अपने वर्चुअल वातावरण के लिए आवश्यक वर्चुअल मशीन बनाना। इस कार्य को पूरा करने के लिए, आपको New Virtual Machine विज़ार्ड का उपयोग करना होगा, या तो ESXi हाइपरवाइज़र होस्ट क्लाइंट से या Windows के लिए vC

  1. भौतिक विंडोज मशीन को वर्चुअलबॉक्स VM में बदलें: चरण-दर-चरण गाइड भौतिक विंडोज मशीन को वर्चुअलबॉक्स VM में बदलें: चरण-दर-चरण गाइड

    यदि आप वर्चुअलबॉक्स में चलाने के लिए तैयार एक भौतिक मशीन को वर्चुअल मशीन में बदलना चाहते हैं, तो नीचे पढ़ना जारी रखें। कभी-कभी आपको उस प्रोग्राम और फ़ाइलों के लिए पुराना कंप्यूटर रखने की आवश्यकता हो सकती है जो इसमें हैं। ऐसे मामले में आप या तो पुराना कंप्यूटर रख सकते हैं (यदि इसमें कोई हार्डवेयर सम