ค้นหาเว็บไซต์

LFCS: วิธีจัดการและสร้าง LVM โดยใช้คำสั่ง vgcreate, lvcreate และ lvextend - ตอนที่ 11


เนื่องจากการเปลี่ยนแปลงข้อกำหนดการสอบ LFCS ที่มีผล กุมภาพันธ์ ในวันที่ 2 ธันวาคม 2016 เรากำลังเพิ่มหัวข้อที่จำเป็นให้กับซีรีส์ LFCS ที่เผยแพร่ที่นี่ เพื่อเตรียมพร้อมสำหรับการสอบนี้ ขอแนะนำให้ใช้ซีรีส์ LFCE เช่นกัน

การตัดสินใจที่สำคัญที่สุดอย่างหนึ่งขณะติดตั้งระบบ Linux คือจำนวนพื้นที่เก็บข้อมูลที่จะจัดสรรสำหรับไฟล์ระบบ โฮมไดเร็กตอรี่ และอื่นๆ หากคุณทำผิดพลาด ณ จุดนั้น การขยายพาร์ติชั่นที่ไม่มีพื้นที่เหลืออาจเป็นภาระและค่อนข้างเสี่ยง

การจัดการโลจิคัลวอลุ่ม (หรือที่รู้จักในชื่อ LVM) ซึ่งได้กลายเป็นค่าเริ่มต้นสำหรับการติดตั้ง Linux distribution ส่วนใหญ่ (หากไม่ใช่ทั้งหมด) มีข้อได้เปรียบมากมายเหนือการจัดการการแบ่งพาร์ติชันแบบเดิม บางทีคุณลักษณะที่โดดเด่นที่สุดของ LVM ก็คือช่วยให้สามารถปรับขนาดการแบ่งตรรกะ (ลดหรือเพิ่ม) ได้ตามต้องการโดยไม่ต้องยุ่งยากมากนัก

โครงสร้างของ LVM ประกอบด้วย:

  1. ฮาร์ดดิสก์หรือพาร์ติชันทั้งหมดตั้งแต่หนึ่งตัวขึ้นไปได้รับการกำหนดค่าเป็นฟิสิคัลวอลุ่ม (PV)
  2. กลุ่มวอลุ่ม (VG) ถูกสร้างขึ้นโดยใช้ฟิสิคัลวอลุ่มตั้งแต่หนึ่งตัวขึ้นไป คุณสามารถนึกถึงกลุ่มวอลุ่มเป็นหน่วยจัดเก็บข้อมูลเดียวได้
  3. จากนั้นคุณสามารถสร้างโลจิคัลวอลุ่มหลายตัวในกลุ่มวอลุ่มได้ แต่ละโลจิคัลวอลุ่มค่อนข้างเทียบเท่ากับพาร์ติชันแบบดั้งเดิม โดยมีข้อดีคือสามารถปรับขนาดได้ตามต้องการดังที่เราได้กล่าวไว้ข้างต้น

ในบทความนี้ เราจะใช้ดิสก์สามดิสก์ แต่ละอันมีขนาด 8 GB (/dev/sdb, /dev/sdc และ /dev /sdd) เพื่อสร้างฟิสิคัลวอลุ่มสามตัว คุณสามารถสร้าง PV ที่ด้านบนของอุปกรณ์ได้โดยตรง หรือจะแบ่งพาร์ติชันก่อนก็ได้

แม้ว่าเราจะเลือกใช้วิธีแรก แต่ถ้าคุณตัดสินใจที่จะใช้วิธีที่สอง (ตามที่อธิบายไว้ในส่วนที่ 4 - สร้างพาร์ติชันและระบบไฟล์ใน Linux ของซีรีส์นี้) ตรวจสอบให้แน่ใจว่าได้กำหนดค่าแต่ละพาร์ติชันเป็นประเภท 8e.

การสร้างฟิสิคัลวอลุ่ม กลุ่มวอลุ่ม และโลจิคัลวอลุ่ม

หากต้องการสร้างฟิสิคัลวอลุ่มที่ด้านบนของ /dev/sdb, /dev/sdc และ /dev/sdd ให้ทำดังนี้

pvcreate /dev/sdb /dev/sdc /dev/sdd

คุณสามารถแสดงรายการ PV ที่สร้างขึ้นใหม่ด้วย:

pvs

และรับข้อมูลโดยละเอียดเกี่ยวกับ PV แต่ละรายการด้วย:

pvdisplay /dev/sdX

(โดยที่ X คือ b, c หรือ d)

หากคุณละ /dev/sdX เป็นพารามิเตอร์ คุณจะได้รับข้อมูลเกี่ยวกับ PV ทั้งหมด

หากต้องการสร้างกลุ่มวอลุ่มชื่อ vg00 โดยใช้ /dev/sdb และ /dev/sdc (เราจะบันทึก /dev/sdd เพื่อใช้ในภายหลังเพื่อแสดงความเป็นไปได้ในการเพิ่มอุปกรณ์อื่นเพื่อขยายความจุเมื่อจำเป็น):

vgcreate vg00 /dev/sdb /dev/sdc

เช่นเดียวกับในกรณีของฟิสิคัลวอลุ่ม คุณยังสามารถดูข้อมูลเกี่ยวกับกลุ่มวอลุ่มนี้ได้โดยการออก:

vgdisplay vg00

เนื่องจาก vg00 ถูกสร้างขึ้นด้วยดิสก์ 8 GB สองดิสก์ จึงจะปรากฏเป็นไดรฟ์ 16 GB เดียว:

เมื่อพูดถึงการสร้างโลจิคัลวอลุ่ม การกระจายพื้นที่จะต้องคำนึงถึงความต้องการทั้งในปัจจุบันและอนาคต ถือเป็นแนวปฏิบัติที่ดีที่จะตั้งชื่อแต่ละโลจิคัลวอลุ่มตามวัตถุประสงค์การใช้งาน

ตัวอย่างเช่น เรามาสร้าง LV สองรายการชื่อ vol_projects (10 GB) และ vol_backups (พื้นที่ที่เหลืออยู่) ซึ่งเราสามารถใช้ในภายหลังเพื่อจัดเก็บเอกสารประกอบของโครงการ และการสำรองข้อมูลระบบตามลำดับ

ตัวเลือก -n ใช้เพื่อระบุชื่อสำหรับ LV ในขณะที่ -L กำหนดขนาดคงที่และ -l (L ตัวพิมพ์เล็ก) คือ ใช้เพื่อระบุเปอร์เซ็นต์ของพื้นที่ที่เหลืออยู่ในคอนเทนเนอร์ VG

lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00

เช่นเคย คุณสามารถดูรายการ LV และข้อมูลพื้นฐานได้ด้วย:

lvs

และข้อมูลรายละเอียดด้วย

lvdisplay

หากต้องการดูข้อมูลเกี่ยวกับ LV เดียว ให้ใช้ lvdisplay โดยมี VG และ LV เป็นพารามิเตอร์ ดังต่อไปนี้:

lvdisplay vg00/vol_projects

ในภาพด้านบน เราจะเห็นว่า LV ถูกสร้างขึ้นเป็นอุปกรณ์จัดเก็บข้อมูล (โปรดดูบรรทัด เส้นทาง LV) ก่อนที่แต่ละโลจิคัลวอลุ่มจะสามารถใช้ได้ เราจำเป็นต้องสร้างระบบไฟล์ที่อยู่ด้านบนก่อน

เราจะใช้ ext4 เป็นตัวอย่างที่นี่ เนื่องจากช่วยให้เราทั้งคู่สามารถเพิ่มและลดขนาดของแต่ละ LV ได้ (ตรงข้ามกับ xfs ที่อนุญาตให้เพิ่มขนาดเท่านั้น):

mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups

ในส่วนถัดไป เราจะอธิบายวิธีปรับขนาดโลจิคัลวอลุ่มและเพิ่มพื้นที่จัดเก็บข้อมูลจริงเพิ่มเติมเมื่อจำเป็นต้องดำเนินการดังกล่าว

การปรับขนาดโลจิคัลวอลุ่มและการขยายกลุ่มวอลุ่ม

ตอนนี้ลองนึกภาพสถานการณ์ต่อไปนี้ พื้นที่ใน vol_backups ของคุณเริ่มจะหมด ในขณะที่คุณยังมีพื้นที่เหลืออีกมากใน vol_projects เนื่องจากธรรมชาติของ LVM เราสามารถลดขนาดของอันหลังได้อย่างง่ายดาย (เช่น 2.5 GB) และจัดสรรให้กับอันแรก ในขณะที่ปรับขนาดแต่ละระบบไฟล์ในเวลาเดียวกัน

โชคดีที่ทำได้ง่ายๆ ดังนี้:

lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups

สิ่งสำคัญคือต้องรวมเครื่องหมายลบ (-) หรือเครื่องหมายบวก (+) ขณะปรับขนาดโลจิคัลวอลุ่ม มิฉะนั้น คุณจะตั้งค่าขนาดคงที่สำหรับ LV แทนที่จะปรับขนาด

อาจเกิดขึ้นได้เมื่อคุณมาถึงจุดที่การปรับขนาดโลจิคัลวอลุ่มไม่สามารถแก้ปัญหาความต้องการพื้นที่จัดเก็บข้อมูลของคุณได้อีกต่อไป และคุณจำเป็นต้องซื้ออุปกรณ์จัดเก็บข้อมูลเพิ่มเติม เพื่อให้ง่าย คุณจะต้องใช้ดิสก์อื่น เราจะจำลองสถานการณ์นี้โดยเพิ่ม PV ที่เหลือจากการตั้งค่าเริ่มต้นของเรา (/dev/sdd)

หากต้องการเพิ่ม /dev/sdd ใน vg00 ให้ทำ

vgextend vg00 /dev/sdd

หากคุณรัน vgdisplay vg00 ก่อนและหลังคำสั่งก่อนหน้า คุณจะเห็นขนาดของ VG เพิ่มขึ้น:

vgdisplay vg00

ตอนนี้คุณสามารถใช้พื้นที่ที่เพิ่มใหม่เพื่อปรับขนาด LV ที่มีอยู่ได้ตามความต้องการของคุณ หรือเพื่อสร้างเพิ่มเติมตามความจำเป็น

การติดตั้งโลจิคัลวอลุ่มขณะบูตและตามความต้องการ

แน่นอนว่าการสร้างโลจิคัลวอลุ่มคงไม่มีประโยชน์อะไรหากเราจะไม่ใช้งานมันจริงๆ! เพื่อระบุโลจิคัลวอลุ่มได้ดีขึ้น เราจะต้องค้นหาว่า UUID คืออะไร (คุณลักษณะที่ไม่เปลี่ยนแปลงซึ่งระบุอุปกรณ์จัดเก็บข้อมูลที่ฟอร์แมตแล้วโดยไม่ซ้ำกัน)

หากต้องการทำเช่นนั้น ให้ใช้ blkid ตามด้วยเส้นทางไปยังอุปกรณ์แต่ละเครื่อง:

blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups

สร้างจุดเมานท์สำหรับแต่ละ LV:

mkdir /home/projects
mkdir /home/backups

และแทรกรายการที่เกี่ยวข้องใน /etc/fstab (ตรวจสอบให้แน่ใจว่าใช้ UUID ที่ได้รับก่อนหน้านี้):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

จากนั้นบันทึกการเปลี่ยนแปลงและติดตั้ง LVs:

mount -a
mount | grep home

เมื่อพูดถึงการใช้ LV จริงๆ คุณจะต้องกำหนดสิทธิ์ ugo+rwx ที่เหมาะสมตามที่อธิบายไว้ในส่วนที่ 8 – จัดการผู้ใช้และกลุ่มใน Linux ของซีรีส์นี้

สรุป

ในบทความนี้ เราได้แนะนำ Logical Volume Management ซึ่งเป็นเครื่องมืออเนกประสงค์ในการจัดการอุปกรณ์จัดเก็บข้อมูลที่ให้ความสามารถในการปรับขนาด เมื่อใช้งานร่วมกับ RAID (ซึ่งเราได้อธิบายไว้ในส่วนที่ 6 – สร้างและจัดการ RAID ใน Linux ของซีรีส์นี้) คุณจะไม่เพียงเพลิดเพลินไปกับความสามารถในการขยายขนาด (จัดทำโดย LVM) แต่ยังมีระบบสำรอง (นำเสนอโดย RAID)

ในการตั้งค่าประเภทนี้ โดยทั่วไปคุณจะพบ LVM ที่ด้านบนของ RAID กล่าวคือ กำหนดค่า RAID ก่อน จากนั้นจึงกำหนดค่า LVM ที่ด้านบนของค่า

หากคุณมีคำถามเกี่ยวกับบทความนี้หรือข้อเสนอแนะในการปรับปรุง โปรดติดต่อเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง