বিটিআরএফএসে এলএক্সসি পাত্রে হ্যান্ডেল করার সঠিক উপায়


11

বলুন যে আমাদের কাছে একটি সার্ভার রয়েছে lxc ইনস্টলড এবং একটি এলএক্সসি পাত্রে বেস ইম্জি হিসাবে ব্যবহৃত হয় /var/lib/lxc/ubuntu_base। সরলতার জন্য আসুন বেস img অনুলিপি করার পরে কনফিগার পরিবর্তনগুলি ভুলে যাই।

কিছু লোক নতুন ধারক তৈরির জন্য সাবভলিউম এবং স্ন্যাপশটগুলি ব্যবহার করার পরামর্শ দেয় তবে সহজেই সিমিলার ফলাফলের সাথে সিপি --reflink করতে পারে।

সুতরাং একাধিক পাত্রে পরিচালনার জন্য প্রপার উপায় (বা কোনটি ভাল)?

  • স্ন্যাপশট

এই উপায়টি সর্বোত্তম বলে মনে হচ্ছে তবে lxc-dest এর মতো আদেশগুলি কাজ করবে না কারণ এটি ডিরেক্টরি মুছতে সক্ষম হবে না।

btrfs subvolume snapshot /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
  • রিফ্লিংক সহ সিপি

এটি বা স্ন্যাপশটের মধ্যে কোনও পারফরম্যান্সের পার্থক্য রয়েছে কিনা তা আমি নিশ্চিত নই

cp --reflink=always /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
  • বা এমন কি আরও ভাল উপায় আছে যে সম্পর্কে আমি অবগত নই।

সম্পাদনা:

আমি কেবল একটা বিষয় reflink বিকল্প দেখা করেছি যে আপনার বেস ধারক কারণ মুছতে পারবেন না যদি অন্যদের চালাচ্ছি, হয় /procএবং /devমাউন্ট করা হয় এবং কখনও পরিবর্তন SE রেফারেন্স সবসময় একই। তবে সমস্ত অনুলিপিযুক্ত পাত্রগুলি বন্ধ করে দেওয়া সাহায্য করবে বলে মনে হচ্ছে।


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

উত্তর:


2

আমি উবুন্টু এলটিএস 14 এ আছি এবং কেবল নিম্নলিখিতগুলি চালিয়েছি (এমনকি প্রথমবারের মতোও) এবং এটি একটি কবজির মতো কাজ করেছে:

lxc-stop -n ubuntu_base
lxc-clone -o ubuntu_base -n ubuntu_base_c1 -s
lxc-start -n ubuntu_base_c1 -d # make changes if needed
lxc-stop -n ubuntu_base_c1
lxc-snapshot -n ubuntu_base_c1

ব্যাকিং স্টোর বিটিআরএফএস (আপনার ক্ষেত্রে) থাকলে lxc-clone সহ -s ব্যবহার করা স্ন্যাপশট নেবে।

এর সাথে নতুন ক্লোন / স্ন্যাপশট যাচাই করুন

lxc-ls -f
btrfs subvolume list /var/lib/lxc

আশা করি এইটি কাজ করবে!


1
লক্ষ্য করুন এই দিন আপনার যা দরকার তা নির্দিষ্ট করার Btrfs ব্যাকিং দোকান যখন আপনি চালাতে lxc সৃষ্টি বা lxc-ক্লোন আপনি একটি দেব overlayfs পরিবর্তে।
লেস্টার চেউং

কেবলমাত্র একটি নতুন "আলো" ধারক তৈরি করতে, মনে হচ্ছে বিকল্পটির জন্য দুটি প্রথম লাইনই যথেষ্ট (lxc- স্টপ এবং lxc-ক্লোন) যথেষ্ট এবং শেষের -sতিনটি (lxc_start, lxc_stop, lxc_snapshot) কেবল একটি ভবিষ্যতে ধারক বিবর্তন পরিচালনার জন্য সহায়তা প্রক্রিয়া। এটা কি ঠিক ?
লেলেবার্ডে

3

যদি আপনি lxc জন্য Btrfs সাবভলিউমগুলি দেখুন ব্যবহার করবে, আপনি বিকল্প যোগ করার প্রয়োজন user_subvol_rm_allowedআপনার /etc/fstab। একটি fstab ফাইল থেকে নেওয়া উদাহরণ:

UUID=XXXXXXXXXXXXXXXXXXXXXX / btrfs subvol=@,user_subvol_rm_allowed,defaults 0 0

বিকল্পটি আপনাকে অনুমতি দেবে যে আপনি রুট না হয়ে সাবভল সরিয়ে ফেলতে পারবেন, কেবলমাত্র সাধারণ ব্যবহারকারী। এই সক্ষমতাটি lxc দ্বারা ব্যবহৃত হয় যখন স্ন্যাপশটগুলি বিটিআরএফএস সাবভলিউমগুলিতে যায়


3

অনুমান করুন এটি আপনার বেস চিত্রটি কতটা বড় তার উপর নির্ভর করে। আমি সম্ভবত চাই lxc-তৈরি একটি নতুন ধারক এবং লবণ / পুতুল ইত্যাদি বিধান আমার পাত্রে এবং শুধুমাত্র ব্যবহার lxc-ক্লোন অপেক্ষাকৃত বড় পাত্রে জন্য (যেমন দেব পাত্রে সরঞ্জাম ইনস্টল ও কনফিগার প্রচুর সঙ্গে)।

নোট করুন যে lxc-clone উত্স হিসাবে একই ব্যাকিং স্টোর ব্যবহার করবে। সুতরাং সাবভোলিউম ব্যবহার করতে আপনাকে "-বি বিটিআরটিএফস" দিয়ে আপনার ধারক তৈরি করতে হবে। উদাহরণ স্বরূপ:

lxc-create -B btrfs -n mycontainer -t ubuntu

তারপরে এটি ক্লোন করুন:

lxc-clone -s mycontainer mynewcontainer

আপনি যদি কনটেইনারগুলি সঞ্চয় করতে zfs ব্যবহার করছেন তবে --zfsrootlxc-create করার অতিরিক্ত বিকল্প রয়েছে যাতে আপনি ডিফল্ট "ট্যাঙ্ক" বাদে অন্য কোনও জপুল চয়ন করতে পারেন। উদাহরণ স্বরূপ:

lxc-create -B zfs --zfsroot=data/lxc

ভাগ করুন এবং উপভোগ করুন!


আমি বিটিআরএফএসের সাথে ডেবিয়ান হুইজে আছি। এটি প্রদর্শিত হয় যে বিকল্পটি -B btrfsডিফল্টরূপে ব্যবহৃত হয় - আমি ধরে নিই যে আমার ডেবিয়ানটি বিটিআরএফএসের সাথে সেট আপ হয়েছে। প্রকৃতপক্ষে, আমি এই বিকল্পটি ছাড়াই আমার প্রথম ধারক তৈরি করেছি (32 বিট ডেবিয়ান হুইজি) এবং এর জন্য একটি সাবভলিউম তৈরি করা হয়েছিল।
লেলেবার্ডে

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