برنامه نویسی

LVM Land – Community Dev

پیوندهای سری مرتبط:
1. حزب بخش
2.FileSystem & Mounting
3.LVM Land (این مقاله)

در این پست دنیای عملی تر مدیر حجم منطقی بررسی خواهد شد. این امر با اجازه تخصیص پویا از فضای ذخیره سازی ، مدیریت ذخیره سازی پیشرفته را فراهم می کند. این امر به مدیران این امکان را می دهد تا پارتیشن های دیسک را با انعطاف پذیری بیشتری نسبت به روش های سنتی پارتیشن بندی ایجاد ، تغییر اندازه و مدیریت کنند. بیایید ابتدا وضعیت بلوک خود را بررسی کنیم.

[sorad@dev9 ~]$ lsblk -f /dev/{sdb,sdc}
NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sdb                                                                           
├─sdb1 xfs                e191547c-35b1-44f8-9278-8160eac6e300                
├─sdb2 ext4   1.0         3060ac82-ea5e-4cf3-b2f7-975154512ed3                
├─sdb3                                                                        
├─sdb4                                                                        
├─sdb5                                                                        
└─sdb6                                                                        
sdc                                                                           
├─sdc1 xfs                81bff549-814e-407f-ab1f-396cb95a7f09    1.4G    28% /mountsdc
├─sdc2                                                                        
├─sdc3                                                                        
├─sdc4                                                                        
├─sdc5                                                                        
└─sdc6 
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ما 9 از 2 پارتیشن 2 گیگابایتی خود را در دسترس داریم. من از آن فضا برای حجم منطقی استفاده می کنم. دوباره به fdisk برای حذف برخی از پارتیشن ها. به خاطر Brevity ، من فقط روند SDC را نشان می دهم. توجه داشته باشید که حذف پارتیشن 4 (گسترش یافته) نیز پارتیشن های منطقی آن را حذف می کند.

[sorad@dev9 ~]$ sudo fdisk /dev/sdc

Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.


Command (m for help): p

Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5ace204b

Device     Boot    Start      End Sectors Size Id Type
/dev/sdc1           2048  4196351 4194304   2G 83 Linux
/dev/sdc2        4196352  8390655 4194304   2G 83 Linux
/dev/sdc3        8390656 12584959 4194304   2G 83 Linux
/dev/sdc4       12584960 20971519 8386560   4G  5 Extended
/dev/sdc5       12587008 16781311 4194304   2G 83 Linux
/dev/sdc6       16783360 20971519 4188160   2G 83 Linux

Command (m for help): d
Partition number (1-6, default 6): 2

Partition 2 has been deleted.

Command (m for help): d
Partition number (1,3-6, default 6): 3

Partition 3 has been deleted.

Command (m for help): p
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5ace204b

Device     Boot    Start      End Sectors Size Id Type
/dev/sdc1           2048  4196351 4194304   2G 83 Linux
/dev/sdc4       12584960 20971519 8386560   4G  5 Extended
/dev/sdc5       12587008 16781311 4194304   2G 83 Linux
/dev/sdc6       16783360 20971519 4188160   2G 83 Linux

Command (m for help): d
Partition number (1,4-6, default 6): 4

Partition 4 has been deleted.

Command (m for help): p
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5ace204b

Device     Boot Start     End Sectors Size Id Type
/dev/sdc1        2048 4196351 4194304   2G 83 Linux

Command (m for help): w
The partition table has been altered.
Syncing disks.
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

با بررسی مجدد وضعیت بلوک فعلی ، متوجه می شویم که 9 پارتیشن استفاده نشده دیگر وجود ندارد.

[sorad@dev9 ~]$ lsblk -f /dev/{sdb,sdc}
NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sdb                                                                           
├─sdb1 xfs                e191547c-35b1-44f8-9278-8160eac6e300                
└─sdb2 ext4   1.0         3060ac82-ea5e-4cf3-b2f7-975154512ed3                
sdc                                                                           
└─sdc1 xfs                81bff549-814e-407f-ab1f-396cb95a7f09    1.4G    28% /mountsdc
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

دوباره به FDisk ، فضای باقی مانده را برای هر دیسک به یک پارتیشن واحد اختصاص می دهم. گزینه های پیش فرض برای استفاده از تمام فضای دیسک موجود انتخاب می شود. من با استفاده از کد ، پارتیشن های جدید را برچسب گذاری می کنم 8e بنابراین نوع آنها نشان می دهد LVMبشر باز هم ، من فقط روند SDC را نشان می دهم.

[sorad@dev9 ~]$ sudo fdisk /dev/sdc

Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
First sector (4196352-20971519, default 4196352): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4196352-20971519, default 20971519): 

Created a new partition 2 of type 'Linux' and of size 8 GiB.

Command (m for help): p
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5ace204b

Device     Boot   Start      End  Sectors Size Id Type
/dev/sdc1          2048  4196351  4194304   2G 83 Linux
/dev/sdc2       4196352 20971519 16775168   8G 83 Linux

Command (m for help): t
Partition number (1,2, default 2): 
Hex code or alias (type L to list all): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): p
Disk /dev/sdc: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5ace204b

Device     Boot   Start      End  Sectors Size Id Type
/dev/sdc1          2048  4196351  4194304   2G 83 Linux
/dev/sdc2       4196352 20971519 16775168   8G 8e Linux LVM

Command (m for help): w
The partition table has been altered.
Syncing disks.
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

دوباره وضعیت بلوک را بررسی می کنیم ، می بینیم که پارتیشن های منفرد به هر دیسک اضافه می شوند. SDB3 و SDC2 برای استفاده آماده هستند.

[sorad@dev9 ~]$ lsblk -f /dev/{sdb,sdc}
NAME   FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sdb                                                                           
├─sdb1 xfs                e191547c-35b1-44f8-9278-8160eac6e300                
├─sdb2 ext4   1.0         3060ac82-ea5e-4cf3-b2f7-975154512ed3                
└─sdb3                                                                        
sdc                                                                           
├─sdc1 xfs                81bff549-814e-407f-ab1f-396cb95a7f09    1.4G    28% /mountsdc
└─sdc2
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اینجا سرگرم کننده است! ساختار LVM از 3 لایه تشکیل شده است:

  1. حجم جسمی: پارتیشن هایی که گروه های حجم را تشکیل می دهند.

  2. گروههای حجمی: ترکیبی از حجم فیزیکی ایجاد یک منبع فضای ذخیره سازی.

  3. حجم منطقی: پارتیشن های مجازی/منطقی با استفاده از فضای ذخیره سازی موجود در گروه حجم اختصاص یافته خود.

بیایید لیست فعلی حجم فیزیکی را با استفاده از آن بررسی کنیم PVSبشر ما می بینیم که فقط یکی وجود دارد.

[sorad@dev9 ~]$ sudo pvs
[sudo] password for sorad: 
  PV         VG      Fmt  Attr PSize   PFree
  /dev/sda2  cs_vbox lvm2 a--  <19.00g    0
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

ما می توانیم SDB3 و SDC2 را با استفاده از حجم فیزیکی اضافه کنیم پی وی سنگی کردن مشخص کردن پارتیشن برای استفاده.

[sorad@dev9 ~]$ sudo pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created.

[sorad@dev9 ~]$ sudo pvcreate /dev/sdc2
  Physical volume "/dev/sdc2" successfully created.

[sorad@dev9 ~]$ sudo pvs
  PV         VG      Fmt  Attr PSize   PFree 
  /dev/sda2  cs_vbox lvm2 a--  <19.00g     0 
  /dev/sdb3          lvm2 ---   <6.00g <6.00g
  /dev/sdc2          lvm2 ---   <8.00g <8.00g
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

حال ، بیایید گروه های حجم فعلی را با آن بررسی کنیم VGS، سپس با استفاده از VG جدید ایجاد کنید vgcreateبشر نحو VGCREATE:

vgcreate name_for_the_group partition_to_use

ستون های PV و LV حجم فیزیکی و منطقی مرتبط با هر گروه جلد را نشان می دهند.

[sorad@dev9 ~]$ sudo vgs
  VG      #PV #LV #SN Attr   VSize   VFree
  cs_vbox   1   2   0 wz--n- <19.00g    0 

[sorad@dev9 ~]$ sudo vgcreate party_lv /dev/sdb3
  Volume group "party_lv" successfully created

[sorad@dev9 ~]$ sudo vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  cs_vbox    1   2   0 wz--n- <19.00g     0 
  party_lv   1   0   0 wz--n-  <6.00g <6.00g
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون برای اضافه کردن SDC2 به همان گروه حجم. از آنجا که party_lv از قبل ایجاد شده است ، ما باید از آن استفاده کنیم در حال حاضر برای افزودن حجم فیزیکی بیشتر. نحو در اصل همان VGCREATE است. فقط نام VG موجود را برای استفاده مشخص کنید. حتماً به تغییرات در ستون های PV ، LV ، VSIZE و VFREE پس از آن نگاه کنید.

[sorad@dev9 ~]$ sudo vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  cs_vbox    1   2   0 wz--n- <19.00g     0 
  party_lv   1   0   0 wz--n-  <6.00g <6.00g

[sorad@dev9 ~]$ sudo vgextend party_lv /dev/sdc2
  Volume group "party_lv" successfully extended

[sorad@dev9 ~]$ sudo vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  cs_vbox    1   2   0 wz--n- <19.00g     0 
  party_lv   2   0   0 wz--n-  13.99g 13.99g
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اوه – من در کنوانسیون نامگذاری اشتباه کردم. ما هنوز با گروه های حجم کار می کنیم ، اما من به طور تصادفی نام Party_ را نامگذاری کردمLV، که حاکی از یک حجم منطقی است. مشکلی نیست – ما می توانیم با استفاده از آن برطرف کنیم نام فرمان

[sorad@dev9 ~]$ sudo vgrename party_lv party_vg
  Volume group "party_lv" successfully renamed to "party_vg"

[sorad@dev9 ~]$ sudo vgs
  VG       #PV #LV #SN Attr   VSize   VFree 
  cs_vbox    1   2   0 wz--n- <19.00g     0 
  party_vg   2   0   0 wz--n-  13.99g 13.99g
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

دویدن LVS در کنار نشان دادن حجم منطقی فعلی ما.

[sorad@dev9 ~]$ sudo lvs
  LV   VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cs_vbox -wi-ao---- <17.00g                                                    
  swap cs_vbox -wi-ao----   2.00g  
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

شما با استفاده از حجم منطقی ایجاد می کنید LVCREATEبشر برای این مثال ، من از کل party_vg برای ایجاد یک حجم منطقی واحد استفاده می کنم. با این حال ، اگر می خواهید روند کار را تکرار کرده و چندین حجم منطقی از Party_vg ایجاد کنید ، می توانید اندازه کوچکتر را اختصاص دهید. نحو lvcreate کمی بیشتر درگیر است:

lvcreate -n name_for_volume -l size_to_make_volume volume_group_to_use

[sorad@dev9 ~]$ sudo lvcreate -n party_lv -L 13.99G party_vg
  Rounding up size to full physical extent 13.99 GiB
  Logical volume "party_lv" created.

[sorad@dev9 ~]$ sudo lvs
  LV       VG       Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root     cs_vbox  -wi-ao---- <17.00g                                                    
  swap     cs_vbox  -wi-ao----   2.00g                                                    
  party_lv party_vg -wi-a-----  13.99g
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

آنجا ما آن را داریم! Party_LV اکنون برای مراحلی که قبلاً با آن آشنا هستیم آماده است و یک سیستم فایل و نصب را اضافه می کنیم.

یادداشت: مسیر حجم منطقی با پارتیشن های فیزیکی متفاوت است. در حالی که آنها هنوز هم با /dev شروع می شوند ، حجم های منطقی به طور معمول از یکی از دو قالب مسیر پیروی می کنند:

  1. /dev/mapper/vg_name-lv_name

  2. /dev/vg_name/lv_name (پیوند نمادین)

بنابراین برای مثال ما ، هر دو مسیر کار خواهد کرد:

  1. /dev/mapper/party_vg-party_lv

  2. /dev/party_vg/party_lv

در ادامه خواهید دید که هر دو فقط برای نشان دادن استفاده می شوند.

سیستم فایل را اضافه کنید:

[sorad@dev9 ~]$ sudo mkfs.ext4 /dev/party_vg/party_lv
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 3667968 4k blocks and 917504 inodes
Filesystem UUID: dd2e3dcd-a2fb-4ae4-b102-505a966e6a71
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done   

[sorad@dev9 ~]$ lsblk -f /dev/party_vg/party_lv 
NAME              FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
party_vg-party_lv ext4   1.0         dd2e3dcd-a2fb-4ae4-b102-505a966e6a71
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

نصب:

[sorad@dev9 ~]$ sudo mkdir /partition_party

[sorad@dev9 ~]$ sudo mount /dev/party_vg/party_lv /partition_party/

[sorad@dev9 ~]$ lsblk -f /dev/party_vg/party_lv 
NAME              FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
party_vg-party_lv ext4   1.0         dd2e3dcd-a2fb-4ae4-b102-505a966e6a71     13G     0% /partition_party
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

اکنون حجم منطقی را برای نشان دادن نحوه اضافه کردن آن به پرونده /etc /fstab برای نصب مداوم نشان می دهم. می توانید ستون MountPoints (به عنوان مثال ، در خروجی LSBLK) را بررسی کنید تا ببینید که آیا و کجا حجم در حال حاضر نصب شده است.

[sorad@dev9 ~]$ sudo umount /partition_party/

[sorad@dev9 ~]$ lsblk -f /dev/party_vg/party_lv 
NAME              FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
party_vg-party_lv ext4   1.0         dd2e3dcd-a2fb-4ae4-b102-505a966e6a71

[sorad@dev9 ~]$ sudo vi /etc/fstab
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

در پرونده /etc /fstab ، من مسیر اصلی را برای party_lv اضافه می کنم:

/dev/mapper/party_vg-party_lv/partition_party ext4 پیش فرض 0 0

وقتی دویدم کوه، من یک پیام بارگیری مجدد دریافت می کنم ، بنابراین من آن را نیز اجرا می کنم ، سپس نمایش می دهم که LV ما دوباره نصب شده است.

[sorad@dev9 ~]$ sudo mount -a
mount: (hint) your fstab has been modified, but systemd still uses
       the old version; use 'systemctl daemon-reload' to reload.

[sorad@dev9 ~]$ sudo systemctl daemon-reload

[sorad@dev9 ~]$ lsblk -f /dev/party_vg/party_lv 
NAME              FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
party_vg-party_lv ext4   1.0         dd2e3dcd-a2fb-4ae4-b102-505a966e6a71     13G     0% /partition_party
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

برای پایان کار و بررسی LV عملیاتی است ، بیایید یک فایل آزمایشی ایجاد کنیم.

[sorad@dev9 ~]$ sudo touch /partition_party/great_party.txt

[sorad@dev9 ~]$ ll /partition_party/
total 16
-rw-r--r--. 1 root root     0 May 16 14:39 great_party.txt
drwx------. 2 root root 16384 May 16 14:32 lost+found
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

امیدوارم از این سفر سوم با من در قلمرو ذخیره سازی لذت برده باشید. سوالات ، نظرات و نگرانی ها همیشه مورد استقبال قرار می گیرد. باز هم از خواندن شما متشکرم

PS
ممکن است در ابتدا متوجه این هشدار شده باشید:

This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این مقاله بدون حذف سیستم های فایل به پایان رسید. لطفاً به من اطلاع دهید که آیا دلیل خاصی وجود دارد که همیشه ابتدا سیستم های پرونده را از بین ببرد ، همانطور که در هشدار بیان شده است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا