আমি কীভাবে দুটি লজিকাল ভলিউম একত্রিত করব যা এলভিএম-এর একক শারীরিক ভলিউমে থাকে?


14

আমার দুটি লজিকাল ভলিউম রয়েছে, একটি / হিসাবে মাউন্ট করা হয়, অন্যটি / হোম হিসাবে মাউন্ট করা হয়।

আমি তাদের একত্রিত করতে চাই কারণ /ভলিউম অবিচ্ছিন্নভাবে স্থানের বাইরে চলেছে । (হ্যাঁ, আমি জানি যে সমস্ত স্থান কী ব্যবহার করছে; না, আমি এটি সরাতে পারি না))

আমি মেশিনটি এটি করতে দু'দিনের জন্য নামাতে চাই।

ওএস: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux(সেন্টোস)


1
কেন শুধু /ভলিউম বৃদ্ধি না, LVM ব্যবহারের বিন্দু নয়?
জেসনওয়ারিয়ান

2
@ জেসনওয়ারিয়ান কেন আমাকে ডিস্কের স্থান বরাদ্দ করা হয় তা ম্যানুয়ালি কেন সামঞ্জস্য করতে হবে? এটি কি কোনও ফাইল সিস্টেমের পুরো পয়েন্ট নয়?
নিক ওডেল

@ নিকডেল নং। যদি ডেটা ধরে রাখতে কোনও ভলিউম খুব ছোট হয়, তবে এটি কেবল খুব ছোট। সামগ্রিক ক্ষমতা হ'ল ভলিউম আকারের একটি উপাদান, ফাইল সিস্টেম আকার নয়। লজিকাল ভলিউমগুলি মাউন্টযুক্ত ভলিউমগুলিকে পুনরায় আকার দেওয়া এবং পৃথক স্টোরেজ সংস্থানগুলিকে একক ভলিউমে মার্জ করা সহজ করে তোলে। LVM এর সাহায্যে আপনি জাস্টওয়্যারিয়ান যা পুনরায় চালু না করে পরামর্শ দিচ্ছেন তা করতে সক্ষম হবেন: নিশ্চিত হন যে নিয়মিত ব্যবহারকারীরা লগ-অফ করেছেন (বিনামূল্যে / হোম) umount / home লভ্রেডস করুন (ভুলে যাবেন না) এটি পুনরায় মাউন্ট করুন তারপর একটি লেভেক্স্যান্ড করুন রুট ফাইল সিস্টেমে এবং আপনি সম্পন্ন করেছেন। আপনি যদি মার্জ করতে চান তবে আপনাকে একটি RSSync করতে হবে।
ব্র্যাচলে

@ জোয়েলড্যাভিস যদি আমার সমস্ত ব্যবহারকারীদের লগ আউট করার প্রয়োজন হয় তবে আমার পুনরায় বুট করা দরকার কিনা তা কি প্রাসঙ্গিক?
নিক ওডেল

@ নিকডেল ওম ... হ্যাঁ? বেশিরভাগ লিনাক্স সিস্টেমগুলি সার্ভার, আপনার বুঝতে হবে যে এটি অন্যথায় না বললে মানুষের অনুমান হবে।
ব্র্যাচলে

উত্তর:


10

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

প্রথমত, আমি ব্যাক আপ করেছি:

tar -zcvf /media/e14be279-8c11-450a-b52c-1493cff3c632/xxxxxxx-home.tar.gz --exclude=/home/zzzz/Downloads /home

এটি / হোম ডিরেক্টরিটির একটি সংকুচিত ব্যাকআপ তৈরি করে এবং এটি আমার বাহ্যিক ড্রাইভে রাখে। (মনে রাখবেন যে আপনার বাহ্যিক ড্রাইভের আলাদা পথ থাকবে))

এখন, আপনাকে একক-ব্যবহারকারী মোডে পুনরায় বুট করতে হবে।

reboot

যখন আপনার কম্পিউটারটি আবার চালু হয়, আপনাকে এই জাতীয় স্ক্রিনটি সন্ধান করতে হবে:

Booting Centos 2.6.32-279.22.1.el6.x86_64 in 3 seconds...

এতে বাধা দিতে কোনও কী টিপুন। আপনার মতো স্ক্রিনটি দেখতে হবে:

বুট বুট কেন্দ্রaস্পেস টিপুন , তারপরে টাইপ করুন single। প্রবেশ করুন।

আপনার এই মত একটি প্রম্পট দেখতে হবে:

 [root@xxxxxxx /] # 

নিম্নলিখিত কমান্ড লিখুন:

df -h

এটা আপনাকে দেখাতে হবে Size, Usedএবং Avail। আমরা আগ্রহী Used
আপনার বাড়ির ভলিউম দ্বারা কতটা জায়গা ব্যবহৃত হচ্ছে তা লিখুন। আমাদের এটি পরে প্রয়োজন হবে।

umount /home
e2fsck -f /dev/mapper/vg_xxxxxxx-lv_home

মনে রাখবেন আপনার বাড়ির পরিমাণ কতটা ব্যবহৃত হয়েছে? এটি দ্বিগুণ করুন এবং এই আদেশটি দিন। উদাহরণস্বরূপ, আমার হোম ডিরেক্টরি ব্যবহার করে আমার 15 গিগাবাইট ছিল, তাই আমি এটি 30 গিগাবাইট আকারে।

resize2fs /dev/mapper/vg_xxxxxxx-lv_home 30G

সতর্কতা : এই পরবর্তী পদক্ষেপটি হ'ল ডেটা হারাতে পারে। আপনি আগের কমান্ডের চেয়ে বড় আকার স্থাপন করেছেন তা নিশ্চিত করুন । নিশ্চিত হতে 5 গিগাবাইট যুক্ত করুন।

lvresize -L 35G vg_xxxxxxx/lv_home

রুট পার্টিশনটি বলুন যে সমস্ত স্থান আমরা সবে ছেড়েছি space

lvresize -l +100%FREE vg_xxxxxxx/lv_root
resize2fs /dev/mapper/vg_xxxxxxx-lv_root

রুট পার্টিশনে আপনার ডেটা অনুলিপি করুন

mount -t ext4 /dev/mapper/vg_xxxxxxx-lv_home /mnt/home
ls /mnt/home
cp -a /mnt/home/. /home/

(যাইহোক, এটি -aগুরুত্বপূর্ণ, কারণ অন্যথায় সবকিছু রুটের মালিকানাধীন হবে এবং আপনি এটি চান না))
ডেটা সঠিকভাবে অনুলিপি করা হয়েছে তাড়াতাড়ি পরীক্ষা করুন:

ls -lR /home

এখন আমরা হোম পার্টিশনটি সরিয়ে ফেলি এবং নতুন জায়গাটি আবার নিতে রুটকে বলি।

umount /mnt/home
lvremove /dev/mapper/vg_xxxxxxx-lv_home
lvresize -l +100%FREE vg_xxxxxxx/lv_root
resize2fs /dev/mapper/vg_xxxxxxx-lv_root

এই মুহুর্তে, আমি একটি বড় ভুল করেছি, যা থেকে আপনি শিখতে পারেন। আমি রিবুট করেছি, এবং সিস্টেমটি ফিরে এলে এটি আমার মূল বিভাগটিকে পঠন-লিখন হিসাবে মাউন্ট করতে অস্বীকৃতি জানায় কারণ এটি আমার / হোম পার্টিশনটি মাউন্ট করতে পারে না। সুতরাং, আমরা রিবুট করার আগে, টাইপ করি

nano /etc/fstab

এই লাইনের মধ্যে একটি সিস্টেমকে / home পার্টিশনটি মাউন্ট করতে বলবে। #এটির আগে একটি রাখুন । Ctrl-O টিপুন, প্রবেশ করুন, Ctrl-X টিপুন। এখন আপনি রিবুট করতে পারেন।

(হাইপোথিটিক্যালি, আপনি যদি আমার মতো fstab সম্পাদনা করতে ভুলে যান তবে আপনার মূল পার্টিশনটি মাউন্ট করার কমান্ডটি হ'ল mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /)


বিস্তারিত ভালোবাসি!
এনএমআর

আমি একই ধরণের সমস্যায় পড়েছি, তবে মেশিনে আমার শারীরিক প্রবেশাধিকার নেই। এটি করার কোনও উপায় কি যার জন্য একক-ব্যবহারকারী মোডে বুট করার দরকার নেই?
হতাশ

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

1
@NickODell: আমি করেনি একটি নতুন প্রশ্ন জিজ্ঞাসা: askubuntu.com/questions/1115913/...
FrustratedWithFormsDesigner

@ ফ্রাস্ট্রেটেড উইথফর্মস ডিজাইনার এটি আমি আপনাকে দিতে পারার চেয়ে অনেক ভাল পরামর্শ।
নিক ওডেল

3

সতর্কতা: কিছু করার আগে সমস্ত সমালোচনামূলক ডেটা ব্যাকআপ করুন!

আপনার / হোম পার্টিশন থেকে সমস্ত ডেটা অন্য পার্টিশন, লোকাল পার্টিশন বা বাহ্যিক ড্রাইভে বা অন্য যে কোনও জায়গায় আপনার পর্যাপ্ত জায়গা রয়েছে সেখানে স্থানান্তর করতে হবে।

/ Home lv সরান এবং তারপরে / (রুট) lv প্রসারিত করুন

/ হোম ডিরেক্টরিতে ডেটাটি অনুলিপি করুন

সম্পাদনা 1

উপরের উত্তরটি ধরে নেওয়া হচ্ছে যে হোম পার্টিশনে ডেটা রাখার জন্য রুট পার্টিশনে আপনার কাছে পর্যাপ্ত জায়গা নেই।

যদি এটি না হয় তবে হোম পার্টিশনটি অন্য কোথাও মাউন্ট করুন এবং ডেটা অনুলিপি করুন, উদাহরণস্বরূপ:

umount /home
mount /dev/mapper/lv-home /mnt/home
cp -a /mnt/home/. /home/

তারপরে কেবল হোম পার্টিশনটি সরিয়ে রুট পার্টিশনটি প্রসারিত করুন


3

কোনও বাহ্যিক স্টোরেজ ছাড়াই আপনি এটি করতে পারেন, এ থেকে চলতে পারে /তবে আপনাকে আনমাউন্ট করতে হবে /home

আপনি যদি সাবধান হন তবে এটি একটি বিশেষ ঝুঁকিপূর্ণ প্রক্রিয়া নয় তবে তবে, মানসম্মত পরামর্শ প্রযোজ্য: প্রথমে ব্যাকআপ নিন এবং সেগুলি পরীক্ষা করুন।

আমি ব্যবহার করব fooভলিউম গ্রুপের নাম জন্য, এবং rootএবং homeলজিক্যাল ভলিউম নাম। এই যৌক্তিক ভলিউম পাথ তোলে foo/rootএবং foo/home, এবং ডিভাইস পাথ /dev/mapper/foo-rootএবং /dev/mapper/foo-home। আমি ধরে নিলাম যে তারা একই ভলিউম গ্রুপে রয়েছে, অন্যথায় এটি আরও জটিল হয়ে যায় এবং দুটি ভলিউম গ্রুপের শারীরিক ভলিউম বিন্যাসের উপর নির্ভরশীল।

প্রথমত, আনমাউন্ট করুন /homeএবং চালান e2fsck -f /dev/mapper/foo-home। তারপরে প্রথমে ফাইল সিস্টেমটি সঙ্কুচিত করুন এবং তদনুসারে লজিকাল ভলিউম। resize2fs /dev/mapper/foo-home NNNNএনএনএনএন হ'ল ভলিউমের অভ্যন্তরে আপনি যে ব্লকগুলি ধরে রাখতে চান সেই সংখ্যাটি চালান (আপনি কেবি বা এমবি বা জিবি ব্যবহার করতে পারেন প্রত্যয়ের পরিবর্তে K, Mবা G)। ফাইলসিস্টেম মাপে পর সঙ্গে লজিক্যাল ভলিউম সঙ্কুচিত lvresize -L MMMM foo/homeযেখানে বার, মাস মেগাবাইটের একটি সংখ্যা (নোট ডিফল্ট ইউনিট থেকে ভিন্ন resize2fs, কিন্তু আপনি একই প্রত্যয় ব্যবহার করতে পারেন K, M, G)। লজিকাল ভলিউমটি ফাইল সিস্টেমের চেয়ে আরও সঙ্কুচিত না করতে খুব সাবধান হন - এটি এই পদ্ধতির এক বিপজ্জনক পদক্ষেপ।

ভলিউম গ্রুপে এখন অব্যবহৃত ঘর। lvresize -l +100%FREE foo/rootভলিউম গ্রুপের সমস্ত ফাঁকা জায়গা রুট ভলিউম দখল করতে চালান । তারপরে resize2fs /dev/mapper/foo-rootসম্পূর্ণ যৌক্তিক ভলিউমটি বিস্তৃত করতে ফাইল সিস্টেমটি বাড়ানোর জন্য (আকারের কোনও পরামিতি ছাড়াই) চালান ; ভলিউম মাউন্ট করার সময় বড় করা সম্ভব done

আপনার কাছে এখন কয়েকটি ফাইলের অনুলিপি করার জায়গা রয়েছে। আপনার যদি প্রতিটি কিছুর জন্য পর্যাপ্ত জায়গা না থাকে তবে আপনি যতটা পারেন তত সরান, তারপরে প্রক্রিয়াটি পুনরাবৃত্তি করুন।

একবার আপনি সমস্ত ফাইল অনুলিপি করে ফেললে /home, আপনি এটি ধ্বংস করতে প্রস্তুত। /homeখালি কিনা তা যাচাই করুন (আপনি যদি ফাইলগুলি স্থানান্তর করেন) বা এতে থাকা সমস্ত ফাইল /homeঅনুলিপি করেছেন /root(যদি আপনি ফাইলগুলি অনুলিপি করেন)। এখন-অব্যাহতিযুক্ত লজিকাল ভলিউমটি ধ্বংস করতে, চালান lvremove foo/home। শেষ অবধি, এর সাথে রুট ভলিউম lvresize -l 0%FREE foo/rootএবং এর ফাইল সিস্টেমটি বড় করুন resize2fs /dev/mapper/foo-home


দ্রষ্টব্য: / আমি সিঙ্গেল-ব্যবহারকারী মোডে পুনরায় চালু না করা অবধি মাউন্ট ছাড়তে অস্বীকার করেছি।
নিক ওডেল

দ্রষ্টব্য: এটি vg_ (মেশিনের নাম) এবং lv_home হিসাবে উল্লেখ করা হয়েছে
নিক ওডেল

ঠিক আছে, আমি এটি কাজ করে। যদিও এই গাইড থেকে কয়েকটি বিবরণ অনুপস্থিত ছিল, তাই আমি শীঘ্রই আমার সম্পূর্ণ কমান্ডের ইতিহাস পোস্ট করব।
নিক ওডেল

2

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

মেশিনে অ্যাক্সেস পান, এসএসএস ঠিক আছে (অ-রুট ব্যবহারকারীকে ধরে নিচ্ছেন)।

  1. cd / সুতরাং আপনি হোম ডিরেক্টরিতে না
  2. sudo -s আমরা এই সমস্ত জন্য মূল হতে হবে
  3. lsof /home পরীক্ষা করুন যে কেউ বাড়ির ভলিউম ব্যবহার করছে না, এমন হওয়া উচিত নয়
  4. mv, tarবা অন্য কোথাও বাড়ির সামগ্রীগুলি সমান
  5. lvremove centos/home
  6. সম্পাদনা করুন /etc/fstabএবং মন্তব্য করুন বা এর জন্য লাইনটি সরিয়ে দিন/home
  7. বাড়ির যে বিষয়বস্তুগুলি আপনি ব্যাক আপ করেছিলেন তার আগে ফিরে আসুন /home- আপনি এখন নিরাপদ অবস্থানে রয়েছেন, এখানে একটি পুনরায় বুট করা ঠিক হবে
  8. lvresize -l +100%FREE centos/root
  9. xfs_growfs /dev/centos/root CentOS 7 এ, অন্যরা ব্যবহার করতে পারে resize2fs
  10. df -h আপনি সফল হয়েছে?

আশা করি এটি কারও পক্ষে সহজ করে দেয়। আপনি আজকাল ফাইল সিস্টেমে লাইভ কী করতে পারবেন তা সত্যিই বেশ আশ্চর্যজনক।


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