কীভাবে এলভিএমে ভলিউম গ্রুপের আকার হ্রাস করবেন?


30
[root@localhost ~] vgdisplay
  --- Volume group ---
  VG Name               vg_root
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               297,59 GiB
  PE Size               4,00 MiB
  Total PE              76182
  Alloc PE / Size       59392 / 232,00 GiB
  Free  PE / Size       16790 / 65,59 GiB
  VG UUID               XXXXXXXXXX

পিভি:

[root@localhost ~] pvdisplay

  --- Physical volume ---
  PV Name               /dev/mapper/udisks-luks-uuid-ASDFASDF
  VG Name               vg_root
  PV Size               297,59 GiB / not usable 2,00 MiB
  Allocatable           yes 
  PE Size               4,00 MiB
  Total PE              76182
  Free PE               16790
  Allocated PE          59392
  PV UUID               YYYYYYYYYYY

সুতরাং আমার 65 জিবিাইট ফ্রি স্পেস সহ একটি ভিজি আছে। তবে যখন আমি এই ভলিউম গ্রুপটি প্রায় 50 ডলার গিগাবাইট সঙ্কুচিত করতে চাই:

pvresize -tv --setphysicalvolumesize 247G /dev/mapper/udisks-luks-uuid-ASDFASDF
  Test mode: Metadata will NOT be updated and volumes will not be (de)activated.
    Using physical volume(s) on command line
    Test mode: Skipping archiving of volume group.
    /dev/mapper/udisks-luks-uuid-ASDFASDF: Pretending size is 517996544 not 624087040 sectors.
    Resizing volume "/dev/mapper/udisks-luks-uuid-ASDFASDF" to 624087040 sectors.
    Resizing physical volume /dev/mapper/udisks-luks-uuid-ASDFASDF from 0 to 63231 extents.
  /dev/mapper/udisks-luks-uuid-ASDFASDF: cannot resize to 63231 extents as later ones are allocated.
  0 physical volume(s) resized / 1 physical volume(s) not resized
    Test mode: Wiping internal cache
    Wiping internal VG cache

সুতরাং ত্রুটি বার্তাটি হ'ল:

cannot resize to 63231 extents as later ones are allocated.

প্রশ্ন: আমি কীভাবে ভিজি_রোটকে ডিফ্র্যাগ করতে পারি যাতে আমি এর অনাহীন অংশটি সরিয়ে ফেলতে পারি?

PS: আমি ইতিমধ্যে জানতে পেরেছিলাম যে কেবলমাত্র ভিজির আকার পরিবর্তন করতে আমি পিভিকে পুনরায় আকার দিতে হবে, বা ভিজি পুনরায় আকার দেওয়ার জন্য আরও ভাল কোন আদেশ আছে (প্রাক্তন: আমি যদি কোনও ভিভিতে বেশ কয়েকটি ভিজি রাখি তবে আমি কী করতে পারি? ... )?

উত্তর:


31

আপনি pvmoveএই এক্সটেন্টগুলি ডিভাইস বা অন্য কোনও ডিভাইসের শুরুতে সরাতে ব্যবহার করতে পারেন :

sudo pvmove --alloc anywhere /dev/device:60000-76182

তারপরে pvmoveএক্সটেন্টগুলি কোথায় স্থানান্তরিত করতে হবে তা বেছে নিন বা সেগুলি কোথায় স্থানান্তরিত করতে হবে তা আপনি নির্দিষ্ট করতে পারেন।

pvs -v --segments /dev/deviceবর্তমানে কোন এক্সটেন্টগুলি বরাদ্দ করা হয়েছে তা দেখুন ।


1
আমার পক্ষে বিষয়টি হ'ল এটি পিইগুলি অন্য জায়গায় সরিয়ে নিয়েছে। গন্তব্য নির্দিষ্ট করতে হবে যেমন:sudo pvmove --alloc anywhere /dev/sdX2:60000-76182 /dev/sdX2:3000-19182
আকস্তাদদিনভ

29

LVM বা LVM2 পার্টিশনের আকার পরিবর্তন করতে প্রয়োজনীয় পদক্ষেপগুলি:

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

শেষ কমান্ড, pvresizeত্রুটি হতে পারে

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

আপনাকে এলভিএম এর শেষে অব্যক্ত স্থানটি পুনরায় সাজতে হবে। এর অর্থ রুট এবং অদলবদল বিভাজনের পরে। এই কমান্ডের সাহায্যে আপনি স্থানের বর্তমান ব্যবস্থা দেখতে পাবেন

pvs -v --segments /dev/sda5

pvs এভাবে আউটপুট দেখাবে

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii 0 free
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy jjj swap 0 linear /dev/sda5:yyyy-end

pvmoveবাহ্যিক খণ্ডগুলি অপসারণ করতে এখন ব্যবহার করুন :

sudo pvmove --alloc anywhere /dev/sda5:yyyy-end

এখন দেখা যাক অদলবদলের ভলিউমটি স্থানান্তরিত হয়েছে কিনা।

pvs -v --segments /dev/sda5

খণ্ডের নতুন ক্রমটি দেখানো উচিত:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii swap 0 linear /dev/sda5:xxx+1-yyyy
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy+1 end 0 free

এর পরে, জিপিআর্ট ব্যবহার করুন এবং সর্বাধিক ব্যবহৃত অঞ্চলে এলভিএমের আকার পরিবর্তন করুন। বাকিগুলি অব্যক্ত স্থানে থাকবে।


এটি একটি দুর্দান্ত বিস্তৃত উত্তর - এটি সহায়ক হবে যদিও এতে যদি সিস্টেম সিস্টেমের আকার পরিবর্তন করার জন্য একটি পদক্ষেপ 0 অন্তর্ভুক্ত থাকে, যেমন, পুনরায় আকার দিন 2fs। আমার মনে হয় না এটি বিশদভাবে হওয়া দরকার, তবে ভবিষ্যতের দর্শকদের কাছে একটি টান হিসাবে সেখানে কিছু পাওয়া সহায়ক হবে
জাস্টিন

আমার শুরুতে ফাঁকা জায়গা ছিল, গন্তব্য ছাড়াই পিভিএমভকে কল করা শুরুতে সরাতে পারেনি। pvmove --alloc anywhere /dev/sda5:yyyy-end 0-newend"নতুন" দিয়ে যা কাজ হয়েছিল তা শেষ হিসাবে গণনা করা হয়েছিল - হ্যাঁ। তবে আমি নিশ্চিত নই যে শুরুতে স্থানটি স্থানান্তরিত করার ব্যাপ্তির চেয়ে কম ফাঁকা স্থান যদি এটি কাজ করে কিনা। এছাড়াও আমি মনে করি আপনার পিভিএস আউটপুটগুলির একটি টাইপ আছে, আমি মনে করি আপনি এর /dev/sda5:0-xxxপরিবর্তে বোঝাতে চেয়েছিলেন /dev/sda:0-xxx
পিসওয়ার্ল্ড

2
@ জাস্টিন এর --resizefsপ্যারামিটারটি lvresizeইতিমধ্যে অন্তর্নিহিত ফাইল সিস্টেমের আকার পরিবর্তন করার জন্য যত্ন নেয়।
পিসওয়ার্ল্ড

@ পিসওয়ার্ল্ড কেবল ম্যান পৃষ্ঠাটি পড়েছেন এবং মনে হচ্ছে আপনি ঠিক বলেছেন
জাস্টিন

দুর্দান্ত উত্তর - তবে আপনি কি শেষ ধাপটি বিশদভাবে বলতে পারবেন? আমি ধরে নিয়েছি "এলজিএমের আকার পরিবর্তন" এর অর্থ "শারীরিক আয়তনের আকার পরিবর্তন?" জিপিআইবি নেই এমন সিস্টেমগুলির জন্য জিপিআরটিড ছাড়া কমান্ড লাইনে এটি করার কোনও উপায় আছে কি?
কেভিন কেইন

1

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


0

আমি এই পদ্ধতিটি ব্যবহার করি এটি নিশ্চিত না তবে এটি আমার পক্ষে সেরা

এটি সিসএডমিন নয় সতর্কতার সাথে ব্যবহার করুন

সমস্যার কারণ হিসাবে পার্থক্য গণনা করুন

324% 4 = 0 কোনও সমস্যা নেই

কিন্তু

324% 32 = 10.125

সমস্যা তাই এটি ফিট করে না

আমি মনে করি এটি "আসল নম্বর পান" বলা হয়

lvmdiskscan

জড়িত পার্টিশন তালিকা করতে

তারপর

pvresize /dev/*** --setphysicalvolumesize ***M

আমাকে কাজের জন্য অতিরিক্ত 4 এম যোগ করতে হবে, আমি মনে করি এটি পুরানো পিই আকারের সাথে সম্পর্কিত

পরিশেষে

vgchange -s 32M **

0

পূর্ববর্তী উত্তরগুলি আমাকে এই সমস্যাটি সমাধান করতে সহায়তা করেছিল, তবে আমার এটি স্বয়ংক্রিয় করার দরকার ছিল এবং তাই পিভিশ্রিঙ্ক লিখেছিলেন

# ./pvshrink /dev/vda2 
Moving 50 blocks from 714 to 664
  /dev/vda2: Moved: 4.00%
  /dev/vda2: Moved: 100.00%
50 of 50 (100.00%) done
Defragmentation complete.
Metadata size: 1048576 b
PE size: 4.0 MiB
Total size 1048576 b + 714 x 4194304 b = 2995781632 b (2.8 GiB)
    Wiping internal VG cache
    Wiping cache of LVM-capable devices
    Archiving volume group "fedora" metadata (seqno 15).
    /dev/vda2: Pretending size is 5851136 not 6287360 sectors.
    Resizing volume "/dev/vda2" to 5851136 sectors.
    Resizing physical volume /dev/vda2 from 0 to 714 extents.
    Updating physical volume "/dev/vda2"
    Creating volume group backup "/etc/lvm/backup/fedora" (seqno 16).
  Physical volume "/dev/vda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

এটি আপনার জন্য পিভিএমভকে যতবার পিভি ডিফ্র্যাম্ট করার জন্য প্রয়োজনীয় হিসাবে ডাকে, এবং তারপরে তার ন্যূনতম সম্ভাব্য আকারে (যা মেটাডাটার কারণে ব্যবহৃত আকারের চেয়ে কিছুটা বেশি) আকার দেয়।

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