Lvremove দিয়ে মুছে ফেলা লজিক্যাল ভলিউমটি কীভাবে পুনরুদ্ধার করবেন


12

আমি CentOS 5.5 এ আছি এবং জেন চালাচ্ছি। আমার একটি বড় ভলিউম গ্রুপ রয়েছে যা আমি lvcreate ব্যবহারের উপর যৌক্তিক ভলিউম তৈরি করি। আজ আমি একজন গ্রাহককে তার অ্যাকাউন্টটি বাতিল করে দিয়েছিলাম, তারপরে প্রায় এক ঘন্টা পরে তার মন পরিবর্তন করুন। দুর্ভাগ্যক্রমে আমি ইতিমধ্যে LVM সরিয়ে দিয়েছিলাম তার জেন চিত্রটি ided (স্রেফ একটি স্ট্যান্ডার্ড লভ্রিমোভ ব্যবহার করা)। তার পর থেকে এই ডিস্কে অন্য কোনও এলভিএম ক্রিয়াকলাপ নেই (যোগ করা বা মোছা অন্য কিছুই)। একটি lvremove "পূর্বাবস্থাপন" করা, বা যৌক্তিক ভলিউম পুনরুদ্ধার করা সম্ভব? যদি তাই হয় তবে আমি কীভাবে এটি সম্পর্কে যাব?

উত্তর:


13

LVM- র ব্যাকআপ এটা মেটাডাটা করে /etc/lvm/backupএবং /etc/lvm/archive। প্রতিটি ফাইলের শীর্ষে এটি আপনাকে সময় / ডেটা বলবে যখন ফাইলটি তৈরি হয়েছিল তখন আপনার এলভিটি মোছার আগে পুরানো মেটাডেটা যেমন ছিল তেমন একটি অনুলিপি আপনার কাছে থাকবে। আমি বিশ্বাস করি যে কোনও সময় মেটাটাটা পরিবর্তিত হয়ে গেলে ব্যাকআপটি স্বয়ংক্রিয় is

নিম্নলিখিতগুলি বিপজ্জনক এবং ধ্বংসাত্মক হতে পারে তাই খুব সাবধানতা অবলম্বন করুন এবং সম্ভব হলে সম্পূর্ণ ব্যাকআপ রাখুন।

এই ভলিউমগ্রুপ মেটাডেটা ব্যাকআপগুলি পুনরুদ্ধার করার আদেশটি vgcfgrestorevgcfgbackupআউটপুটটির জন্য আলাদা ফাইল নির্দিষ্ট করার জন্য -f ফ্ল্যাগের সাহায্যে কমান্ড ব্যবহার করে আপনি বিদ্যমান কার্যকারী কনফিগারেশনটির বর্তমান অনুলিপি তৈরি করেছেন তা নিশ্চিত করুন যাতে আপনি / etc / lvm / ব্যাকআপ বা / ইত্যাদিতে থাকা কোনও ফাইলকে পরিবর্তন না করেন don't / lvm / সংরক্ষণাগার ফোল্ডার। নিশ্চিত হয়ে নিন যে আপনি যে কনফিগারেশনটি পুনরুদ্ধার করতে চান তার সাথে আপনি বর্তমান কনফিগারেশনটি পৃথক করেছেন যে আপনি কেবলমাত্র যে পরিবর্তনগুলি প্রয়োগ করতে চলেছেন তা হ'ল সম্প্রতি মুছে ফেলা এলভি পুনরায় তৈরি করা। আপনার ডেটার একটি সম্পূর্ণ ব্যাকআপ রাখা সম্ভবত কোনও খারাপ ধারণা নয়। আপনি নিজের লিনাক্স বিক্রেতার সাথে সমর্থন / গাইডেন্সের জন্য যোগাযোগ করার কথা বিবেচনা করতে পারেন যদি আপনি এগিয়ে যাওয়ার আগে কোনও সহায়তার চুক্তির অধীনে থাকেন কারণ আমাকে নিজেই এই কাজটি কখনওই করতে হয়নি।

শুভকামনা।


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

@ জন পি হ্যাঁ আমি ভিএম এর সাথে এক ধরণের চিত্রিত করেছি এবং এ জাতীয় পরিবেশে এটি করা একটি কঠিন কাজ হবে। আমি মনে করি এটি এটিকে সরিয়ে ফেলতে হবে ভবিষ্যতে সম্ভবত কোনও অ্যাকাউন্ট সরানোর পদ্ধতিতে 30 দিনের কোনও মুছার সময়কাল জড়িত থাকা উচিত।
3dinfluence

18

"আপনি কি দয়া করে ব্যাকআপ ফাইল থেকে EFROM এবং ETO সন্ধানের ক্ষেত্রে আরও নির্দিষ্ট তথ্য পেতে পারেন? সমস্ত lv আমার ব্যাকআপ ফাইলটিতে 0 থেকে" স্টার্ট_একসেট "থাকে যাতে আমি কিছুটা হারিয়েছি :) ধন্যবাদ! - ব্যবহারকারী 186975 আগস্ট 24 '13 এ 17 : 06 "

ঠিক আছে, আমি খুব নির্দিষ্ট হতে পারি ... একটি লজিকাল ভলিউম পুনরুদ্ধারের সবচেয়ে সহজ উপায় with

উদাহরণ:

1 - আমি আমার লজিকাল ভলিউমটি সরিয়েছি!

$ sudo lvremove /dev/vg1/debian.root

2 - করণীয় প্রথম, সংরক্ষণাগার ফাইলটি /etc/lvm/archive/vg1_(xxxxxx).vg এ সন্ধান করুন। আমি এটি করতে পারি, কেবলমাত্র লজিক্যাল ভলিউমটি সরিয়ে দেওয়ার তারিখটি দেখছি!

$ sudo ls -l /etc/lvm/archive |more

3- আমি এটি পেয়েছি!

-rw------- 1 root root 16255 Mar 20 14:29 vg1_00223-235991429.vg
-rw------- 1 root root 16665 Mar 20 16:49 vg1_00224-748876387.vg
-rw------- 1 root root 17074 Mar 20 16:49 vg1_00225-931666169.vg
-rw------- 1 root root 17482 Mar 20 16:50 vg1_00226-1238302012.vg
-rw------- 1 root root 18081 **Mar 20 21:57 vg1_00227-2048533959.vg**

আমি যেখানে lvremove করেছি তারিখ !!! ... এটি কয়েক মিনিট আগে ছিল ..

4 - আসুন ফাইলটি দেখুন!

$ sudo head /etc/lvm/archive/vg1_00227-2048533959.vg
*# Generated by LVM2 version 2.02.95(2) (2012-03-06): Thu Mar 20 21:57:58 2014
contents = "Text Format Volume Group"
version = 1
description = **"Created *before* executing 'lvremove /dev/vg1/debian.root'"**
creation_host = "server"    # Linux server 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64
creation_time = 1395363478  # Thu Mar 20 21:57:58 2014*

5 - পুনরুদ্ধার করার আগে একটি পরীক্ষা করুন!

$ sudo vgcfgrestore vg1 --test -f /etc/lvm/archive/vg1_00227-2048533959.vg
Test mode: Metadata will NOT be updated and volumes will not be
(de)activated.   **Restored volume group vg1**

6 - ঠিক আছে, এখন কমান্ড লাইনের পুনরাবৃত্তি করুন (--তম) ছাড়াই

$ sudo vgcfgrestore vg1 -f /etc/lvm/archive/vg1_00227-2048533959.vg
**Restored volume group vg1**

7 - এটি পরীক্ষা করুন!

$ sudo lvscan |grep debian
ACTIVE            '/dev/vg1/debian.root' [7,81 GiB] inherit

8 - লজিকাল যদি সক্রিয় না থাকে, এটি করুন!

$ sudo lvchange -a y /dev/vg1/debian.root 

এটা সব

আমি আশা করি এটি এই সমাধানগুলির সন্ধানকারী অন্যান্য ব্যক্তিদের সহায়তা করতে পারে!


5

Lvremove থেকে পুনরুদ্ধার করা সবচেয়ে সহজ জিনিস (ধরে নিই যে আপনি এলভিতে বসবাস করছেন এমন এক্সটেন্টগুলিতে লেখেননি):

আপনার মেটাডেটার ব্যাকআপটি / etc / lvm / সংরক্ষণাগারে সন্ধান করুন এবং খুঁজে বের করুন

ক) যা এলভিতে বাস করছে (ইফ্রোম, ইটিও)
খ) আপনার এলভিতে যে পিভি বাস করছে এবং কোন পিভিতে এটি ব্যবহার করছে তা প্রসারিত হবে (পিএফ্রোম, পিটিও)

আপনার এই তথ্য পাওয়ার পরে আপনি ঠিক একই আকারের একটি নতুন এলভি তৈরি করেন ঠিক একই পিভিতে এলভিটির প্রথম 8 কেবি মোছা ছাড়াই প্রসারিত হয় :

lvcreate --extents EFROM-ETO --zero n --name customer007 YOUR-VG-NAME /dev/yourpv:PFROM-PTO

1
আপনি কি দয়া করে ব্যাকআপ ফাইল থেকে EFROM এবং ETO খুঁজে পেতে আরও নির্দিষ্ট তথ্য পেতে পারেন? সমস্ত এলভির আমার ব্যাকআপ ফাইলে 0 থেকে একটি "স্টার্ট_একস্ট্যান্ড" রয়েছে যাতে আমি কিছুটা হারিয়েছি :) ধন্যবাদ!

3

Easies উপায় একটি মুছে ফেলা LVM ভলিউম পুনঃ (thermoman আগে উত্তর অনুযায়ী) lvcreate সঙ্গে এটি তৈরি হয় zeroing ছাড়া এবং উপার্জন নিশ্চিত করুন যে এটি ডিস্কে একই অবস্থান থাকবে। (থার্মোনের উত্তর থেকে প্রাপ্ত আদেশটি কার্যকর হয়নি))

মুছে ফেলা লজিক্যাল ভলিউমের আকার এবং অবস্থানগুলি পরীক্ষা করুন যেমন তারা / ইত্যাদি / lvm / সংরক্ষণাগারে ফাইল পড়ে মুছার আগে ছিল were ভলিউমের আকার হয় extent_countএর segment1(বা এর সমষ্টি segment*/extent_countমান যদি এটা কয়েক এক্সটেন্টের ছিল)। পদে আছেন stripesপ্রকৃত ভলিউম ওরফে (যেমন পর অধ্যায় pv0)।

উদাহরণস্বরূপ, ভলিউম বিভাগটি এর মতো দেখতে পারে:

    physical_volumes {
            pv0 {
                    device = "/dev/somedisk" # Hint only
                    ...
            }
    }

    logical_volumes {
            ...
            example {
                    ...
                    segment_count = 1

                    segment1 {
                            start_extent = 0
                            extent_count = 1024     # 4 Gigabytes

                            type = "striped"
                            stripe_count = 1        # linear

                            stripes = [
                                    "pv0", 30720
                            ]
                    }
            }
            ...
    }

এই exampleভলিউমের আকার 1024 ছিল এবং এটি 30720 সীমা থেকে শুরু করে / dev / সামান্য দিকে অবস্থিত।

শুরু + আকার -1 = 30720 + 1024 - 1 = 31743 হিসাবে শেষ সীমাটি গণনা করুন that ভলিউম ইস্যুটি পুনরায় তৈরি করতে নিম্নলিখিত:

lvcreate --extents 1024 --zero n --name example vgname /dev/somedisk:30720-31743

এই উত্তরটি গতকাল আমার রাত বাঁচিয়েছিল! আমার একটি ভাঙ্গা জেনসভার ছিল যা একটি
এআইপি

2

আমারও একই অবস্থা ছিল। আমার কাছে পছন্দসই এলভি রয়েছে এমন সমস্ত পিভি ছিল, তবে আমার ভিজি-তে হারিয়ে যাওয়া পিভি এবং 0 টি এলভি দেখিয়েছে। আমি নিম্নলিখিতগুলি করে সুস্থ হয়ে উঠলাম:

  1. মূল হয়ে উঠুন
  2. চালান pvsসকল ড্রাইভ জন্য সংগ্রহ UUID জানা হয়।
  3. / Etc / lvm / সংরক্ষণাগারগুলিতে ফাইলগুলি পর্যালোচনা করুন যতক্ষণ না আমি একই ইউআইডিগুলির সমস্ত তালিকাভুক্ত করেছি।
  4. সংরক্ষণাগারভুক্ত কনফিগারেশন ফাইলটির একটি কার্যকরী অনুলিপি তৈরি করুন এবং সম্পাদনা শুরু করুন।
  5. ইন physical_volumesঅধ্যায়, সেট device =বর্তমান ডিভাইস / UUID জানা দ্বারা রিপোর্ট মেলে লাইন pvs, কোনো পরিষ্কার "MISSING"পতাকা, এবং যে কোনো অপসারণ pvNবিভাগে যে আসলে নিখোঁজ হয়েছে।
  6. ইন logical_volumesঅধ্যায়, কোনো তালিকা যে ফিতে ছিল অপসারণ pvNবিভাগে যা আর অস্তিত্ব।
  7. এটাই ছিল, তখন আমি দৌড়ে গেলাম

    vgcfgrestore --test vg -f /root/dangerously_edited.vg

  8. যখন এটি কাজ করে, আমি --testবিকল্প ছাড়াই আবার দৌড়ে এসেছি ।

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

পরের বার, অবশ্যই, আমি এই সমস্যাটি এড়াতে একটি নতুন ভিজি তৈরি করব।

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