آموزش :: آموزش گام به گام ایجاد Logical Volume Manager یا LVM در لینوکس
درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من
    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      محمد نصیری
      امتیاز: 588684
      رتبه:1
      371
      1706
      809
      10863
      محمد نصیری ، بنیانگذار TOSINSO ، کارشناس امنیت اطلاعات و ارتباطات و کشف جرائم رایانه ای ، هکر کلاه سفید ، تخصص در حوزه امنیت سیستم عامل و تست های نفوذسنجی ، لینوکس ، مجازی سازی ، سرویس های کاربردی سرور و ... سابقه همکاری در بیش از 40 سازمان دولتی ، خصوصی و نظامی در حوزه پروژه ، مشاوره و آموزش ، بیش از 10 هزار ساعت سابقه آموزشی در طی 12 سال فعالیت حرفه ای ... پروفایل کاربر

      آموزش گام به گام ایجاد Logical Volume Manager یا LVM در لینوکس

      تاریخ 46 ماه قبل
      نظرات 6
      بازدیدها 1450
      در مقاله قبلی در انجمن تخصصی فناوری اطلاعات ایران در خصوص اینکه Logical Volume Manager یا LVM چیست و چه کاری برای ما انجام می دهد بصورت مفصل صبحت کردیم و متوجه شدیم که این قابلیت چه امکاناتی را به ما ارائه می دهد. اگر هنوز اطلاعاتی در خصوص LVM ندارید پیشنهاد می کنم به مقاله بنده با عنوان LVM چیست مراجعه کنید و بعد از مطالعه به این مطلب مراجعه کنید. اما اگر با LVM آشنایی دارید به ادامه مطالب می رویم در این مطلب قصد داریم در سیستم عامل لینوکس توزیع Debian قابلیت LVM را برای دو عدد از دیسک هایی که در سیستم قرار داده ایم ایجاد کنیم ، دستوراتی که استفاده می کنیم تقریبا جدید هستند و ممکن است قبلا از آنها استفاده نکرده باشید بنابراین با دقت بیشتری مطلب را مرور کنید ، تنظیمات ماشین مجازی که من می خواهم در آن LVM را پیاده سازی کنم به شکل زیر است :

      1. هارد دیسک اول بصورت dev//sda با ظرفیت 20 گیگابایت
      2. هارد دیسک دوم بصورت dev//sdb با ظرفیت 10گیگابایت برای استفاده در LVM
      3. هارد دیسک سوم بصورت dev/sdc با ظرفیت 6 گیگابایت برای استفاده در 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:~#
      

      آموزش تصویری پارتیشن بندی با LVM در لینوکس


      همانطور که در پاراگراف قبلی مشاهده کردید دیسک دوم ما با ظرفیت 10 گیگابایت قرار است در LVM قرار بگیرد و از طرفی یک هارد دیسک 4 گیگابایتی هم به عنوان دیسک سوم اضافه کرده ایم که بتوانیم بعدا به شما روش Extend کردن فضای پارتیشن در LVM را آموزش بدهیم ، خوب قبل از هر کاری بایستی دیسک های مورد نظرمان را فرمت کنیم ، در گام اول با استفاده از دستورات زیر هارد دیسک دوم 10 گیگابایتی را فرمت می کنیم :

      1. دستور fdisk //dev//sdb را مطابق شکل زیر وارد کنید. ( البته ممکن است اسم هارد درایور در سیستم شما متفاوت باشد)
      2. حرف n را برای ایجاد کردن new partition وارد کنید و Enter را بزنید.
      3. حرف p را برای ایجاد کردن primary partition وارد کنید و Enter را بزنید
      4. در قسمت partition number شماره 1 را وارد کنید
      5. در قسمت First Sector فقط Enter را بزنید تا سیلندر انتخابی اولین سیلندر هارد دیسک باشد ( می خواهیم از تمام فضا بهره ببریم)
      6. در قسمت Last Sector هم فقط Enter را بزنید تا سیلندر انتخاب آخرین سیلندر هارد دیسک باشد.
      7. در انتخاب کلید p را بزنید تا مشخصات پارتیشن ایجاد شده نمایش داده شود ( همه مراحل در تصویر زیر گویاست)

      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):
      

      آموزش تصویری ایجاد پارتیشن LVM در لینوکس


      همانطور که در تصویر بالا هم مشاهده می کنید پارتیشن ما به اسم 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.
      

      آموزش راه اندازی LVM Partition در لینوکس


      تا اینجای کار ما پارتیشن دوم خود را ایجاد کرده ایم و آن را از نوع Linux LVM قرار داده ایم ، حالا نوبت به هارد دیسک سوم می رسد که فضای آن 6 گیگابایت است ، در این حالت ما نمی خواهیم همه 6 گیگابایت را به LVM اختصاص بدهیم و فقط می خواهیم فضایی بالغ بر 4 گیگابایت را از این هارد دیسک گرفته و به پارتیشن قبلی اضافه یا Extend کنیم ، همه مراحل بالا را تکرار می کنیم با این تفاوت که در این مرحله به جای اینکه تمام ظرفیت هارد دیسک را انتخاب کنیم برای Start و Finish سیلندر های مورد نظرمان را انتخاب می کنیم و بر اساس نیاز فضای مورد نیازمان را تعریف می کنیم ، ما در این قسمت از 4 گیگابایت فضا استفاده خواهیم کرد ، بنابراین ابتدا با استفاده از دستورات زیر فرآیند ایجاد کردن پارتیشن 4 گیگابایتی از نوع LVM را بر روی هارد دیسک سوم انجام می دهیم :

      1. دستور fdisk //dev//sdc را وارد کنید
      2. کلید n را برای ایجاد کردن new partition وارد کنید و Enter را بزنید
      3. کلید p را برای ایجاد کردن primary partition وارد کنید و Enter را بزنید
      4. در قسمت Finishing Cylinder کلمه 4G+ را با توجه به نیاز به فضای 4 گیگابایتی وارد و Enter را بزنید
      5. دکمه t را بزنید
      6. برای کد پارتیشن 8e را وارد کنید تا Linux LVM انتخاب شود
      7. کلید w را برای نوشته شدن اطلاعات وارد کنید ( در صورت نیاز partprobe را وارد کنید)
      8. شما در حال حاضر آماده ایجاد کردن 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:~#
      

      آموزش گام به گام ایجاد پارتیشن LVM در لینوکس


      تا اینجای کار ما دو پارتیشن با 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:~#
      

      آموزش تصویری راه اندازی LVM پارتیشن در لینوکس


      حالا نوبت به ایجاد کردن Volume Group است که ما در اینجا اسم Volume Group خود را itprovg می گذاریم و با دستور زیر آن را ایجاد می کنیم :

      root@itpro-debian:~# vgcreate itprovg /dev/sdb1 /dev/sdc1
        Volume group "itprovg" successfully created
      root@itpro-debian:~# 
      

      آموزش ایجاد LVM پارتیشن دستور vgcreate در لینوکس



      شما می توانید با استفاده از دستور 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:~# 
      

      آموزش راه اندازی پارتیشن در لینوکس LVM Partition


      حالا نوبت به ایجاد کردن 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:~# 
      

      آموزش راه اندازی LVM Partition در لینوکس


      در دستور بالا 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 پارتیشن در لینوکس


      خوب تا اینجای کار ما یک پارتیشن 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:~# 
      

      آموزش ایجاد LVM پارتیشن در لینوکس بصورت تصویری


      و در نهایت با استفاده از دستور زیر شما پارتیشن مورد نظر را به دایرکتوری که ایجاد کرده این mount می کنید و شروع به استفاده از آن می کنید :

      root@itpro-debian:~# mount /dev/itprovg/unity /home/unity-mount/
      

      آموزش راه اندازی LVM در لینوکس


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

      نویسنده : محمد نصیری
      منبع : انجمن تخصصی فناوری اطلاعات ایران
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      • سلام استاد
        بابت مقالات خوبتون متشکرم.

        در اینجا منظور از عدد هگزا کد 83 رو متوجه نشدم.لطفا توضیح دهید.
      • اینها کد هستند ، 83 یعنی کدی که خود لینوکس برای انواع فایل سیستم در نظر گرفته ، مثلا برای FAT و .. هم عدد خاص خودش رو در نظر گرفته چیز عجیبی نیست ! نمیدونم کجاش مبهمه مثل یک کد کالا هست ...
      • 83 یعنی کدی که خود لینوکس برای انواع فایل سیستم در نظر گرفته ، مثلا برای FAT و .. "
        اینطور که متوجه شدم این کد برای فایل سیستم هست ، مثلا ntfs و یا fat که خودتون نام بردید.حالا این کد 83 برای چه نوع فایل سیستمی هست؟
      • ببینید با دید ویندوزی نگاه نکنید ویندوز یک دروغ ، فرض کنید پارتیشن بندی میخاید بکنید فقط قالب میزنید توش چیزی نمیزاریم حالا یکی طرح قالب ایرانی داره یکی ارمنی و ... این عدد اینجا هست ، حالا توش طبیعتا باید جانماییهای وسایل مشخص بشن اون میشه فایل سیستم طبیعیه توی طراحی ایرانی ساختار ارمنی قرار نمیگیره.
      • ممنون بسیار عالی بود! فقط یک سوال من یک هارد ۴۸۰ گیگی رو lvm زدم، سنت اوس نصب ۴۱۰ گیگش کلا قابل استفاده هست. چقدر برای lvm کردن فضا رزرو میشه؟!
      • لطفا در قالب گزینه سئوال بپرسید مطرح کنید سپاسگزارم

      برای ارسال نظر ابتدا به سایت وارد شوید