libvirt + KVM ব্যবহার করে কোনও ভিএমের কীভাবে নাম পরিবর্তন করবেন


24

কেভিএম + লিবিভার্টে আমি কীভাবে কোনও ভিএমের নাম পরিবর্তন করতে পারি?

আমি চাই যে এটি 'ইনভেন্টরি'-তে নাম পরিবর্তন করার পাশাপাশি সঞ্চয়স্থানের নাম পরিবর্তন করা ইত্যাদি to


3
আমি এই প্রশ্নটি জিজ্ঞাসা করার পরে লিবারভিট প্রকল্পের সূক্ষ্ম লোকেরা 'বীরষ সম্পাদনা আমার-ভিএম-নাম' কমান্ড যুক্ত করেছে।
আর্থার উলফেল্ট

উত্তর:


18

চালান

virsh dumpxml name_of_vm > name_of_vm.xml

সদৃশ ইউআইডির কারণে কোনও ত্রুটি রোধ করতে পুরানো ভিএম অপরিবর্তিত করুন।

virsh undefine name-of-vm

এক্সএমএল ফাইল সম্পাদনা করুন তারপরে এটি আমদানি করুন।

virsh define name_of_vm.xml

অবশ্যই পরিবর্তনগুলি কার্যকর হওয়ার জন্য আপনাকে থামাতে হবে এবং ভিএম শুরু করতে হবে

virsh destroy name_of_vm
virsh start name_of_vm

5
একটি পদক্ষেপ যুক্ত করতে হবে: (নতুন নামের সাথে ভিএম সংজ্ঞায়নের আগে) "ভাইরাস অপরিবর্তিত নাম-অফ-ভিএম" অন্যথায় এটি ডুপ্লিকেট ইউআইডি সম্পর্কে অভিযোগ করে।
আর্থার উলফেল্ট

1
আমাকে এইচডি.আইএমজি ফাইলটির নতুন নামকরণ করতে হবে এবং এক্সএমএল ফাইলটিতে লাইনটি সম্পাদনা করতে হয়েছিল
আর্থার উলফেল্ট

সঠিক উত্তর অন্য উত্তরে। আপনি যদি পুরানো মেশিনটি ব্যবহার না করেন তবে আপনার নাম পরিবর্তন করতে হবে না।
Nux

1
এই উত্তরটি এখন পুরানো। আমার উত্তর নীচে দেখুন। tldr; বীরশের এখন দমনেম আছে।
পুনর্নির্মাণ


13

virshdomrename1.2.19 প্রকাশের মধ্যে বাস্তবায়ন হয়েছে: সেপ্টেম্বর 02 2015. সুতরাং বর্তমানের সেরা অনুশীলনটি কেবলমাত্র:

 virsh domrename oldname newname

যেমনটি আপনি আশা করতে পারেন, ডোডোমেন অবশ্যই বন্ধ করা উচিত, তবে এটির কোনও স্ন্যাপশটও থাকতে পারে না।


+1 - আপনি virsh edit newnameফাইলের পাথ পরিবর্তন করতে পারেন এবং mv oldname newnameডিরেক্টরিটির নতুন নামকরণ করতে চান যদি আপনি সবকিছু মিলে যেতে চান।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

অন্য কথায়, আপনার 1) /var/lib/libvirt/images/oldname.qCO2 /var/lib/libvirt/images/newname.qcow2 এ নতুন নামকরণও করতে হবে; এবং 2) সম্পাদিত /etc/libvirt/qemu/newname.xML সঠিক উত্স ফাইল ব্যালাইস সেট করতে <উত্স ফাইল = '/ var / lib / libvirt / চিত্র / newname.qcow2'
ম্যাক্সিআরগ্লিজ

তবে কেবলমাত্র যদি আপনার ডোমেইননামগুলি (যা আমি স্বীকার করি সুবিধাজনক) মেলানোর জন্য ফাইলের প্রয়োজন হয় - এটি একটি ধ্বংস / তৈরি চক্র
এড়ায়

5

অনেকগুলি মেশিন পরিবর্তন করতে আপনি এটি ব্যবহার করতে পারেন:

virsh shutdown old-name

শেষ এবং চালানোর জন্য উপরে অপেক্ষা করুন:

virsh dumpxml old-name > old-name.xml
virsh undefine old-name

শেষ এবং চালানোর জন্য উপরে অপেক্ষা করুন:

sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml

প্রতিটি মেশিনের জন্য এটি একের পর এক চালান। আপনার যদি এই তালিকা অন্তর্ভুক্ত থাকে তবে আপনি এই RegExp ব্যবহার করতে পারেন old-name new-name:

([^\r\n]+?)[ \t]+([^\r\n]+)
virsh shutdown $1\n#WAIT!\nvirsh dumpxml $1 > $1.xml\nvirsh undefine $1\n\#WAIT!\nsed -i 's/<name>$1<\\/name>/<name>$2<\\/name>/g' $1.xml\nvirsh define $1.xml\n

0

আমি এটি কিছুটা ভিন্নভাবে করি এবং এটি প্রস্তাবিত পদ্ধতি হতে পারে (নিশ্চিত নয়)।

virsh destroy old-vm virsh edit old-vm

এক্সএমএল পরিবর্তনে

  1. নতুন-ভিএম থেকে ডোমেইন নাম পুরানো-ভিএম
  2. সংরক্ষণ করুন এবং প্রস্থান করার জন্য ইউইউডি-তে একটি চর / সংখ্যা পরিবর্তন করুন।

virsh list --all

1 পুরানো-ভিএম শাট-অফ

2 নতুন-ভিএম শাট-অফ

এখন পুরানো-ভিএম অপরিবর্তিত করুন

virsh undefine old-vm

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.