در مقاله قبلی در توسینسو در خصوص اینکه Logical Volume Manager یا LVM چیست و چه کاری برای ما انجام می دهد بصورت مفصل صبحت کردیم و متوجه شدیم که این قابلیت چه امکاناتی را به ما ارائه می دهد. اگر هنوز اطلاعاتی در خصوص LVM ندارید پیشنهاد می کنم به مقاله بنده با عنوان LVM چیست مراجعه کنید و بعد از مطالعه به این مطلب مراجعه کنید. اما اگر با LVM آشنایی دارید به ادامه مطالب می رویم در این مطلب قصد داریم در سیستم عامل لینوکس توزیع Debian قابلیت LVM را برای دو عدد از دیسک هایی که در سیستم قرار داده ایم ایجاد کنیم ، دستوراتی که استفاده می کنیم تقریبا جدید هستند و ممکن است قبلا از آنها استفاده نکرده باشید بنابراین با دقت بیشتری مطلب را مرور کنید ، تنظیمات ماشین مجازی که من می خواهم در آن LVM را پیاده سازی کنم به شکل زیر است :
حالا برای پیدا کردن پارتیشن ها یا درایوهایی که بر روی سیستم شما نصب شده است کافیست دستور زیر را وارد کنید :
root@itpro-debian:~# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 * 2048 40136703 20067328 83 Linux /dev/sda2 40138750 41940991 901121 5 Extended /dev/sda5 40138752 41940991 901120 82 Linux swap / Solaris Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Disk /dev/sdc: 6442 MB, 6442450944 bytes 255 heads, 63 sectors/track, 783 cylinders, total 12582912 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdc doesn't contain a valid partition table root@itpro-debian:~#
همانطور که در پاراگراف قبلی مشاهده کردید دیسک دوم ما با ظرفیت 10 گیگابایت قرار است در LVM قرار بگیرد و از طرفی یک هارد دیسک 4 گیگابایتی هم به عنوان دیسک سوم اضافه کرده ایم که بتوانیم بعدا به شما روش Extend کردن فضای پارتیشن در LVM را آموزش بدهیم ، خوب قبل از هر کاری بایستی دیسک های مورد نظرمان را فرمت کنیم ، در گام اول با استفاده از دستورات زیر هارد دیسک دوم 10 گیگابایتی را فرمت می کنیم :
root@itpro-debian:~# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xacf2d566. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-20971519, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): Using default value 20971519 Command (m for help): p Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xacf2d566 Device Boot Start End Blocks Id System /dev/sdb1 2048 20971519 10484736 83 Linux Command (m for help):
همانطور که در تصویر بالا هم مشاهده می کنید پارتیشن ما به اسم dev//sdb1// ایجاد شد و نوع پارتیشن نیز با توجه به id ای که مشاهده می کنید کد 83 است که ما باید در این مرحله این کد را تبدیل به LVM کنیم ، حالا در این مرحله حرف t را وارد کنید ، پارتیشن مورد نظرتان را انتخاب کنید ، با توجه به اینکه ما در اینجا یک پارتیشن ایجاد کرده ایم که تمام فضای دیسک را به خودش اختصاص داده است بصورت پیشفرض انتخاب شده است ، حالا ما باید کد HEX نوع پارتیشن یا Partition Type را وارد کنیم ، برای پیدا کردن و مشاهده کدها کافیست حرف l را وارد کنیم ، حالا با توجه به لیستی که به ما نمایش داده شده است متوجه می شویم که کد نوع پارتیشنی که باید برای LVM انتخاب کنیم 8e است ، حالا برای اینکه تغییرات اعمال شود کافیست کلید w را فشار دهیم و با استفاده از دستور partprobe کرنل را از تغییرات ایجاد شده مطلع می سازیم ، اگر دستور partprobe پیدا نشد به دلیل این است که شما بسته parted را نصب نکرده اید و باید با اتصال به اینترنت و زدن دستور زیر این بسته را نصب کنید تا از parted استفاده کنید :
apt-get install parted
البته اگر نمی خواهید این بسته را نصب کنید و برای برقراری ارتباط با اینترنت مشکل دارید کافیست سیستم عامل را یکبار restart کنید، موارد گفته شده در تصویر زیر قابل مشاهده است :
Selected partition 1 Hex code (type L to list codes): l 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
تا اینجای کار ما پارتیشن دوم خود را ایجاد کرده ایم و آن را از نوع Linux LVM قرار داده ایم ، حالا نوبت به هارد دیسک سوم می رسد که فضای آن 6 گیگابایت است ، در این حالت ما نمی خواهیم همه 6 گیگابایت را به LVM اختصاص بدهیم و فقط می خواهیم فضایی بالغ بر 4 گیگابایت را از این هارد دیسک گرفته و به پارتیشن قبلی اضافه یا Extend کنیم ، همه مراحل بالا را تکرار می کنیم با این تفاوت که در این مرحله به جای اینکه تمام ظرفیت هارد دیسک را انتخاب کنیم برای Start و Finish سیلندر های مورد نظرمان را انتخاب می کنیم و بر اساس نیاز فضای مورد نیازمان را تعریف می کنیم ، ما در این قسمت از 4 گیگابایت فضا استفاده خواهیم کرد ، بنابراین ابتدا با استفاده از دستورات زیر فرآیند ایجاد کردن پارتیشن 4 گیگابایتی از نوع LVM را بر روی هارد دیسک سوم انجام می دهیم :
root@itpro-debian:~# fdisk /dev/sdc Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x9d0aa7a9. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-12582911, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-12582911, default 12582911): +4G Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. root@itpro-debian:~#
تا اینجای کار ما دو پارتیشن با partition type بصورت LVM ایجاد کرده ایم ، مرحله بعدی نوبت به ایجاد کردن Physical Volumes است که با دستور زیر انجام می شود :
root@itpro-debian:~# pvcreate /dev/sdb1 /dev/sdc1 Writing physical volume data to disk "/dev/sdb1" Physical volume "/dev/sdb1" successfully created Writing physical volume data to disk "/dev/sdc1" Physical volume "/dev/sdc1" successfully created root@itpro-debian:~#
حالا نوبت به ایجاد کردن Volume Group است که ما در اینجا اسم Volume Group خود را itprovg می گذاریم و با دستور زیر آن را ایجاد می کنیم :
root@itpro-debian:~# vgcreate itprovg /dev/sdb1 /dev/sdc1 Volume group "itprovg" successfully created root@itpro-debian:~#
شما می توانید با استفاده از دستور vgdisplay در ترمینال وضعیت Logical Group ها را به شکل زیر مشاهده کنید :
root@itpro-debian:~# vgdisplay --- Volume group --- VG Name itprovg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 13.99 GiB PE Size 4.00 MiB Total PE 3582 Alloc PE / Size 0 / 0 Free PE / Size 3582 / 13.99 GiB VG UUID 1pA8ps-uSpR-PNSc-wloD-8SJM-4sPb-qVU8M1 root@itpro-debian:~#
حالا نوبت به ایجاد کردن Logical Volume است که با دستور زیر ایجاد می شود :
root@itpro-debian:~# lvcreate itprovg -L 13.99G -n unity Rounding up size to full physical extent 13.99 GiB Logical volume "unity" created root@itpro-debian:~#
در دستور بالا itprovg اسم Volume Group ای است که ایجاد کردیم ، سویچ L- اندازه یا محدوده پارتیشن ها را در نظر می گیرد که در اینجا 14 گیگابایت است و در نهایت سویچ n- اسم Logical Volume ما است که در اینجا unity قرار داده ایم.
حالا با استفاده از دستور lvdisplay ساختار logical volume های خود را به شکل زیر مشاهده می کنیم :
root@itpro-debian:~# lvdisplay --- Logical volume --- LV Path /dev/itprovg/unity LV Name unity VG Name itprovg LV UUID ZSpv3e-QEaz-BqjR-XD5C-1NDk-c5D9-stwIIH LV Write Access read/write LV Creation host, time itpro-debian, 2015-04-05 06:20:46 -0400 LV Status available # open 0 LV Size 13.99 GiB Current LE 3582 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 root@itpro-debian:~#
خوب تا اینجای کار ما یک پارتیشن LVM ایجاد کردیم که تقریبا 14 گیگابایت ( 13.99 ) ظرفیت دارد و از دو دیسک فیزیکی مختلف تشکیل شده است ، تنها کاری که در حال حاضر قرار است شما انجام بدهید این است که این پارتیشن را مثل هر پارتیشن دیگری mount کنید و از آن استفاده کنید ، خوب با استفاده از دستور زیر ابتدا یک دایرکتوری ایجاد می کنیم که در آن پارتیشن مورد نظر را mount کنیم :
root@itpro-debian:~# mkdir /home/unity-mount
حالا پارتیشن LVM ای که ایجاد کرده ایم را باید با استفاده از دستور زیر فرمت کنیم :
root@itpro-debian:~# mkfs.ext4 /dev/itprovg/unity mke2fs 1.42.5 (29-Jul-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 917504 inodes, 3667968 blocks 183398 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=3758096384 112 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done root@itpro-debian:~#
و در نهایت با استفاده از دستور زیر شما پارتیشن مورد نظر را به دایرکتوری که ایجاد کرده این mount می کنید و شروع به استفاده از آن می کنید :
root@itpro-debian:~# mount /dev/itprovg/unity /home/unity-mount/
امیدوارم این آموزش مورد توجه شما قرار گرفته باشد ، اگر سئوال یا ابهامی در خصوص این مطلب به ذهنتان می رسد خوشحال می شویم در ادامه همین مطلب عنوان کنید تا ما هم از تجربیات و نظرات شما عزیزان استفاده کنیم. ITPRO باشید
نویسنده : محمد نصیری
منبع : انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود