কেভিএম / কিউমু - সরাসরি চিত্র ফাইল ছাড়াই এলভিএম ভলিউম ব্যবহার করবেন?


22

আমি এই প্রশ্নের বাক্যটি কীভাবে জানাতে চাই তা নিশ্চিত নই (তাই দরিদ্র শিরোনাম), তাই আমি কী করতে চাইছি তার একটি উদাহরণ সরবরাহ করি।

আমার (পুরানো) জেন হোস্টে আমি প্রতিটি অতিথির কাছে সরাসরি এলভিএম ফাইল সিস্টেমগুলি উপস্থাপন করতে সক্ষম। এই ফাইল সিস্টেমগুলি আসলে হোস্টে তৈরি এবং ফর্ম্যাট করা হয় এবং সরাসরি এর মধ্য দিয়ে যায়। উদাহরণস্বরূপ, আমার হোস্টগুলির মধ্যে একটি পৃথক tmp এবং অদলবদল পার্টিশন ব্যবহার করে, আমি স্টোরেজটি এভাবে সংজ্ঞায়িত করি:

ডিস্ক = [
'পিএইচআই / / ডিভি / ভিজি 1 / গেস্ট 1-অদলবদ, এসডিএ 1, ডাব্লু',
'পিএইচআই: / দেব / ভিজি 1 / গেস্ট 1-ডিস্ক, এসডিএ 2, ডাব্লু',
'পিএইচআই: / দেব / ভিজি 1 / গেস্ট 1-টিএমপি, এসডিএ 3 , ডাব্লু ',
]

সুতরাং, গেস্ট 1-অদলবদলটি অদলবদল হিসাবে ফরম্যাট করা হয়, গেস্ট 1-ডিস্ক এবং গেস্ট 1-টিএমপি এক্সট 4 দিয়ে ফর্ম্যাট করা হয়, এবং অতিথির দৃষ্টিকোণ থেকে এগুলিকে / dev / sda এর অধীনে তিনটি বিন্যাসিত পার্টিশন হিসাবে দেখায়।

(এটি প্রচুর কাজের মতো শোনাতে পারে তবে এখানে প্রচুর পরিমাণে স্ক্রিপ্ট রয়েছে, যেমন দুর্দান্ত কিছু জেন-সরঞ্জাম , যা স্বয়ংক্রিয়ভাবে বেশ কিছু হয়েছে)।

এটি কিছু সত্যিকারের দরকারী ক্ষমতা সরবরাহ করে যার মধ্যে দুটি বিশেষত আমি কেভিএমের সন্ধানে বিশেষ আগ্রহী:

  • হোস্ট ওএস থেকে অতিথি ফাইল সিস্টেমগুলি মাউন্ট করুন । অতিথি চলমান থাকা সত্ত্বেও আমি যে কোনও অতিথি ফাইল সিস্টেমের কেবল পঠনযোগ্য মাউন্টটি করতে পারি। অতিথি চলমান থাকাকালীন আমার যে কোনও বিদ্যমান ভলিউমের LVM স্ন্যাপশট তৈরি করার অনুমতি দেওয়ার পার্শ্ব সুবিধা রয়েছে। এইভাবে, আমি হোস্টের কাছ থেকে দৌড়ানোর সময় আমার সমস্ত অতিথিকে কেন্দ্রীয়ভাবে ব্যাকআপ করতে সক্ষম।

  • অনলাইন ভলিউম পুনরায় আকার । ভলিউমগুলিতে স্ট্যান্ডার্ড লিনাক্স ফাইল সিস্টেম রয়েছে বলে আমি অনলাইনে থাকাকালীন আবারও আমার অতিথি ফাইল সিস্টেমগুলি বাড়ানোর জন্য lvextend এবং resize2fs এর সংমিশ্রণটি ব্যবহার করতে পারি।

আমি বর্তমানে একটি কেভিএম হোস্ট স্থাপন করছি যা জেন হোস্টকে প্রতিস্থাপন করবে। জেন সেটআপের মতোই আমি সরাসরি ফাইল সিস্টেম অ্যাক্সেস সরবরাহ করতে LVM ব্যবহার করছি তবে কেভিএম / কিউমু পৃথকভাবে আচরণ করে যে এটি সর্বদা অতিথিদের জন্য এমনকি একটি এলভিএম ভলিউমে একটি চিত্র ফাইল তৈরি করে। অতিথির দৃষ্টিকোণ থেকে এটি একটি অবিভাজনযুক্ত ডিস্ক হিসাবে দেখায় এবং পার্টিশন এবং ফাইল সিস্টেম তৈরি করার পরে কোনও পার্টিশন লেবেল প্রয়োগ করা অতিথির উপর নির্ভর করে।

অতিথির দৃষ্টিকোণ থেকে এটি ঠিক আছে তবে সার্ভার / পরিচালনার দৃষ্টিকোণ থেকে এটি বর্ণনা করা জেন সেটআপের চেয়ে অনেক কম নমনীয় বলে মনে হচ্ছে। আমি এখনও কেভিএম-এ নতুন, তাই আমি (আশাবাদী) কিছু হারিয়ে যাচ্ছি।

কেভিএম হোস্টে আমার পূর্বের ব্যাকআপ সমাধানটি পুনরায় প্রয়োগ করার চেষ্টা করার সময় আমি যখন এই অতিথির ফাইল সিস্টেমগুলির মধ্যে একটি মাউন্ট করার চেষ্টা করছিলাম তখন মাউন্ট কমান্ডটি এই সমস্যার মধ্যে পড়েছিলাম। সুতরাং, এটিকে সম্বোধন করা আমার বর্তমান উদ্বেগ, তবে এটি আমাকে পুনরায় আকার দেওয়ার বিষয়েও উদ্বিগ্ন করেছিল, কারণ আমি নিশ্চিত যে বিষয়টিও এক পর্যায়ে উঠে আসবে।

সুতরাং, এখানে আমার প্রশ্নগুলি:

  1. আমি আমার জেন সেটআপের জন্য বর্ণিত হিসাবে কেভিএম / কিউমু সরাসরি এলভিএম ভলিউম ফাইল সিস্টেম ব্যবহার করার কোনও উপায় আছে? আমি ব্যবস্থার জন্য libvirt ব্যবহার করি যদি এতে কোনও পার্থক্য আসে।

  2. যদি তা না হয় তবে কেভিএম এর অধীনে অনুরূপ মাউন্টিং / ব্যাকআপ কার্যকারিতা পেতে আমি কী করতে পারি? আমি libguestfs ডাব্লু / ফুউএস এটি ব্যবহারের জন্য ব্যবহার সম্পর্কে আলোচনা দেখেছি, কিন্তু এটি কি সত্যিই সেরা বিকল্প? আমি যদি সম্ভব হয় তবে একটি নেটিভ ফাইল সিস্টেম মাউন্ট সাথে থাকা পছন্দ করি।

  3. এছাড়াও যদি না হয় তবে কেভিএম এর অধীনে কোনও অনলাইন ফাইল সিস্টেমের আকার পরিবর্তন করা সম্ভব? আমি এ সম্পর্কে বেশ কয়েকটি আলোচনা / হাওটো পেয়েছি, তবে উত্তরগুলি স্পষ্ট এবং স্পষ্টভাবে কোনও সরল, সমাধান ছাড়াই পুরো জায়গা জুড়ে বলে মনে হচ্ছে।

দীর্ঘ পোস্টের জন্য দুঃখিত, কেবল এটি পরিষ্কার ছিল তা নিশ্চিত করতে চেয়েছিলেন। আমি সাহায্যকারী হতে পারে যে কোনও অন্য তথ্য সরবরাহ করতে পারি কিনা দয়া করে আমাকে জানান। আলোচনার অপেক্ষায় রইলাম। :-)


আমি এই প্রশ্নের আমার সংস্করণে একটি অনুগ্রহ সেট করতে কেবল লগইন করেছি: সার্ভারফ্রন্ট / প্রশ্ন / 409543/… । আসুন দেখুন আপনি আমাকে 50 পয়েন্ট সংরক্ষণ করেন কিনা :)
বিট্রান্স

উত্তর:


9
  1. qemu-kvm ফাইলগুলির পরিবর্তে LV গুলি ভার্চুয়াল ডিস্ক হিসাবে ব্যবহার করতে পারে। এটি আসলে একটি সাধারণ ব্যবহারের কেস।
  2. libguestfs (এবং কেবল virt-*সরঞ্জামগুলির সেট সন্ধান করুন ) হোস্টের কাছে সরাসরি যে পরিমাণ রিমোট করা যায় তার চেয়ে পরিষ্কার পদ্ধতিতে অতিথি ফাইল সিস্টেমগুলিতে অ্যাক্সেস সরবরাহ করতে পারে, যদিও উভয়ই সম্ভব।
  3. অনলাইন এফএসের আকার পরিবর্তন করা কেভিএমের কোনও বৈশিষ্ট্য নয়, তবে অতিথির OS এর পক্ষে সক্ষম হওয়া উচিত। resize2fsএটি কোনও ভিএম-তে কাজ করবে পাশাপাশি এটি শারীরিক হার্ডওয়্যারেও কাজ করবে, আকার পরিবর্তনগুলি পুনরায় নির্ধারণ করা অতিথি হওয়ার একমাত্র সমস্যা। virt-resizeস্ট্যান্ডার্ড সরঞ্জাম হিসাবে চেষ্টা করুন , তবে lvresizeএবং qemu-imgসহজেই ব্যবহার করা যেতে পারে (যদিও অফলাইন মোডে, সাধারণত অতিথি পুনরায় আরম্ভ করার প্রয়োজন হয়)।

আমি মনে করি lvresizeসঙ্গে resize2fsআসলে একটি গেস্ট সিস্টেম আরম্ভ করার ছাড়া কাজ হবে, কিন্তু আমি এখনও চেষ্টা করিনি


জবাবের জন্য ধন্যবাদ. "qemu-kvm ফাইলগুলির পরিবর্তে LV গুলি ভার্চুয়াল ডিস্ক হিসাবে ব্যবহার করতে পারে।" আপনি কি জানেন যে এটি লিবারভিট / বর্ষের জন্যও সত্য? আমি কিউমু দিয়ে এটি করার জন্য কিছু কিছু জিনিস দেখেছি (যদিও তা সুনির্দিষ্ট কিছু নয়), তবে লিবারভিটের জন্য কিছুই নয়, যা আমি ডোমেন পরিচালনার জন্য ব্যবহার করছি।
জারেড

1
ভার্চুয়াল ডিস্কের জন্য আপনি কোনও ব্লক ডিভাইস বা ব্যাকিং স্টোর হিসাবে কোনও ফাইল সরবরাহ করেন কিনা তা কিউমু সত্যিই যত্ন করে না। ব্লক ডেভস আসলে আরও ভাল কারণ এই পদ্ধতিতে ফাইল সিস্টেমের মধ্যে দিয়ে যাওয়ার চেয়ে qemu প্রকৃত ব্লকে দ্রুত পৌঁছে যায়। libvirt স্টোরেজ পরিচালনার ক্ষেত্রে আশ্চর্যজনক নয়, তবে এটি LVM ভিত্তিক ব্লক অ্যাক্সেসকে সমর্থন করে, এটির পক্ষে কিছুটা শক্ত তবে এটির মাধ্যমে virshসহজ virt-manager। আরএইচইভি / ওভিআর্টের মতো আরও গুরুতর সিস্টেমগুলি এফসি /
আইএসসিএসআই

@ জেয়ার্ড: লিবারভিট / বীরশ অবশ্যই এটি সমর্থন করে; আমরা এটি আমাদের সমস্ত ভিএম স্টোরেজের জন্য ব্যবহার করি।
দোলা

dyasny, womble - মন্তব্য প্রশংসা করুন, কিন্তু আমি এখনও এটি কাজ করতে পারেন না। এমনকি libvirt [ libvirt.org/formatdomain.html#eitionsDisks পাঠ্যসূচী) এর উপর ভিত্তি করে ম্যানুয়ালি ডোমেন কনফিগারেশন এক্সএমএল সম্পাদনা করার চেষ্টা করেছি, তবে আমি যেমন বর্ণনা করেছি তেমন একটি রুট ফাইল সিস্টেম ব্যবহার করার সময় মেশিনটি বুট করতে পারি না। attach-diskএটিকে গতিশীলভাবে সংযুক্ত করার জন্য আমি সবচেয়ে ভাল ব্যবহার করেছি তবে এটি স্থায়ী নয় এবং আমি এটি / এর জন্য কাজ করতে পারি না। আপনি কি এর জন্য কোনও ডকুমেন্টেশন নির্দেশ করতে পারেন, বা নির্দিষ্ট ইঙ্গিত প্রদান করতে পারেন? ধন্যবাদ!
জ্যারেড

কি ত্রুটি আপনি দেখতে পাচ্ছেন? ভিএম কি আদৌ বুট হয়? আমি ভিভিএমটি সংযুক্ত একটি লাইভসিডি আইএসও দিয়ে শুরু করব এবং এটি কী দেখায় এবং কী দেখেনি তা খতিয়ে দেখব, অপরাধী সম্ভবত এই সত্যটি ঘিরে যে ডিস্ক ইন্টারফেসগুলি জেন ​​/ ডেভ / এক্সভিডিএক্স কে কেএম এর / দেব / ভিডিএক্স রূপান্তরিত করে (যদি না আপনি আইডিই ব্যবহার করতে বেছে নিয়েছিলেন এবং তারপরে এটি / dev / hdX
you

4

আপনি তালিকাভুক্ত কারণে আপনি যে কনফিগারেশন সম্পর্কে জিজ্ঞাসা করছেন ঠিক তার সাথেই আমি qemu-kvm + libvirt ব্যবহার করি তবে অতিরিক্ত কারণ আমি কেভিএম হোস্টের ফাইল সিস্টেম স্তর ছাড়াই আরও ভাল পারফরম্যান্স পাচ্ছি । যদি আপনি ভিজি-কে মজাদার-ম্যানেজারে 'স্টোরেজ পুল' হিসাবে যুক্ত করেন তবে আপনি এর ব্যবহারকারী-বান্ধব উইজার্ড ব্যবহার করে এই জাতীয় ভিএম তৈরি করতে পারেন। (তবে আমি একটি টেমপ্লেট হিসাবে একটি বিদ্যমান ভিএম ব্যবহার করে আজকাল হাতে হাতে এক্সএমএল লিখেছি)।

আমার অতিথির একজনের জন্য এখানে 'বর্ষা ডাম্প এক্সএমএল'র স্যানিটাইজড আউটপুট দেওয়া হয়েছে:

<domain type='kvm'>
  <name>somevm</name>
  <uuid>f173d3b5-704c-909e-b597-c5a823ad48c9</uuid>
  <description>Windows Server 2008 R2</description>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.1'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Nehalem</model>
    <vendor>Intel</vendor>
    <feature policy='require' name='tm2'/>
    <feature policy='require' name='est'/>
    <feature policy='require' name='monitor'/>
    <feature policy='require' name='smx'/>
    <feature policy='require' name='ss'/>
    <feature policy='require' name='vme'/>
    <feature policy='require' name='dtes64'/>
    <feature policy='require' name='rdtscp'/>
    <feature policy='require' name='ht'/>
    <feature policy='require' name='ds'/>
    <feature policy='require' name='pbe'/>
    <feature policy='require' name='tm'/>
    <feature policy='require' name='pdcm'/>
    <feature policy='require' name='vmx'/>
    <feature policy='require' name='ds_cpl'/>
    <feature policy='require' name='xtpr'/>
    <feature policy='require' name='acpi'/>
  </cpu>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/vg1/somevm'/>
      <target dev='hda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <interface type='bridge'>
      <mac address='00:00:00:00:00:00'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <video>
      <model type='vga' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none' model='none'/>
</domain>

আরেকটি চিন্তা (আপনার প্রশ্নের সাথে প্রাসঙ্গিক নয় তবে এটি সাহায্য করতে পারে): আপনি যদি পারেন তবে নিশ্চিত হয়ে নিন যে আপনি 'প্যারাভিচুয়ালাইজড' নেটওয়ার্ক, ব্লক, এলোমেলো, ঘড়ি ইত্যাদি চালক ব্যবহার করছেন - তারা পুরোপুরি ভার্চুয়ালাইজড সংস্থাগুলির তুলনায় উল্লেখযোগ্যভাবে দ্রুত're এটি উপরের "মডেল = ভার্টিও" স্টাফ। আপনাকে হোস্টের কার্নেলে যেমন ভাইরিও_নেটের ড্রাইভার মডিউলগুলি লোড করতে হবে।

এখানে 'বীরশ পুল-ডাম্প এক্সএমএল ভিজি 1' এর আউটপুট দেওয়া হয়েছে:

<pool type='logical'>
  <name>vg1</name>
  <uuid>9e26648e-64bc-9221-835f-140f6def0556</uuid>
  <capacity unit='bytes'>3000613470208</capacity>
  <allocation unit='bytes'>1824287358976</allocation>
  <available unit='bytes'>1176326111232</available>
  <source>
    <device path='/dev/md1'/>
    <name>vg1</name>
    <format type='lvm2'/>
  </source>
  <target>
    <path>/dev/vg1</path>
    <permissions>
      <mode>0700</mode>
    </permissions>
  </target>
</pool>

4
আমি মনে করি স্টোরেজ পুলের এক্সএমএলটি দেখতেও দরকারী হবে, যেমনvirsh pool-dumpxml mypool
মাইকেল হ্যাম্পটন

ঠিক আছে, উপরের উত্তরে যুক্ত হয়েছে।
ওয়ান্ডসেল্লি গিক

2

আপনার বর্ণিত জেন আচরণটি হুবহু প্রতিরূপ করার কোনও উপায় আমি জানি না। তবে, আপনি kpartxএকটি এলভিতে পার্টিশনগুলি এক্সপ্লোর করতে ব্যবহার করতে পারেন যা হোস্টের ব্লক ডিভাইস হিসাবে একটি পুরো-ডিস্ক চিত্র ধারণ করে, যার পরে আপনি মাউন্ট করতে পারেন ইত্যাদি


মন্তব্যের জন্য ধন্যবাদ, রিচার্ড। আমি ইতিমধ্যে ইতিমধ্যে সেই বিকল্পটি পেরিয়ে এসেছি পাশাপাশি হেরে যাওয়াও, যা একইভাবে কাজ করে। সমস্যাটি হ'ল হোস্টের ফাইল সিস্টেমগুলি মাউন্ট করার জন্য আমাকে প্রথমে অতিথিকে শাটডাউন করতে হবে। যদি আমি কেবল পঠনযোগ্য মাউন্ট করার চেষ্টা করি, যদি ফাইল সিস্টেমের দুর্নীতির অভিযোগ হয়, একটি fsck চালাতে চায় এবং তারপরে এটি কেবল পঠনযোগ্য বলেই বাতিল হয়। আমি এটিকে পঠন-পাঠানোর চেষ্টা করিনি, কারণ এটি দুর্নীতির কারণ হতে পারে । অনলাইনে প্রয়োজনীয়তা ছাড়াই, সাধারণভাবে কিউমু চিত্র সহ এটি করতে ইচ্ছুক সবার পক্ষে এটি একটি দুর্দান্ত পরামর্শ t
জ্যারেড

2

কেভিএম অফ-ইমেজ কার্নেল এবং বিদ্যমান পার্টিশন বুট করে এই বিষয়ে আমার নিজের প্রশ্নের নিজের উত্তরটি দেখুন । সংক্ষেপে, এর জন্য একটি কনফিগার তৈরি করার জন্য পুণ্য-ইনস্টল করা অতিথির / / / fstab এর সামান্য পরিবর্তন করে দেওয়া বেশ সোজা-এগিয়ে।


সবেমাত্র চেষ্টা করেছি। এটি অন্য দুর্দান্ত ধারণা, তবে এখনও কাজ করে না, অন্তত নতুন অতিথির জন্য নয়। সেন্টো ইনস্টলারটি আসলে ভিডিএ এবং ভিডিবি কে ext4 এবং অদলবদলের সাথে ফর্ম্যাটেড হিসাবে দেখেছে, তবে এটি এখনও তাদের পার্টিশনের চেয়ে ডিস্ক হিসাবে বিবেচনা করার জন্য জোর দিয়েছিল এবং সেগুলি সরাসরি ব্যবহার করবে না, তাই আমি ইনস্টলটি সম্পূর্ণ করতে পারি না। আমি অনুমান করেছি যে আমি "সাধারনত" ইনস্টল করতে পারি, তারপরে ফাইল সিস্টেমগুলি আলাদা করে ভলিউম এবং ফ্রিডলগুলি গ্রাব / fstab দিয়ে আলাদা করে ফেলার জন্য এটির কাজটি করার জন্য আপনি উল্লেখ করেছেন, তবে অতিথিদের নিযুক্ত করার জন্য এটি আসলে ব্যবহারযোগ্য সমাধান নয়। আমি নিজেকে পদত্যাগ করতে শুরু করি যে এটি কেবল কার্যকর হবে না।
জ্যারেড

আমি ভুল বুঝেছিলাম. আমি পিসকি ইনস্টলারগুলি জড়িত না করে সরাসরি হোস্টের থেকে পার্টিশনগুলি তৈরি করতে yum --installroot ব্যবহার করছি। আমার ব্যবহারের ক্ষেত্রে অতিথিরা যতটা সম্ভব সমতুল্য হয়ে ওঠার সময়, অবশেষে আপডেট থাকা। এই কারণেই আমি ডিস্কের চেয়ে পার্টিশন চাই।
বিটারেন্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.