اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

پارتیشن بندی هارد با lvm در linux (بخش 1)

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    پارتیشن بندی هارد با lvm در linux (بخش 1)

    ابزار LVM یا (Logical Volume Management) در لینوکس، مدیریت فضای دیسک را آسانتر میسازد. اگر فایل سیستمی نیاز به فضای بیشتری داشته باشد میتوان به logical volume های آن از فضای آزاد موجود در volume group اضافه کرد و سایز فایل سیستم را به اندازه دلخواه تغییر داد. اگر دیسکی به مشکل بر خورد دیسک جایگزین میتواند به عنوان یک physical volume به همراه volume group میتواند ثبت شود. و محتوای logical volume ها بدون اینکه اطلاعاتی از بین برود به دیسک جدید انتقال میابد.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Create-Logical-Volume-Storage.png مشاهده: 1 حجم: 177.5 کیلو بایت




    در دنیای امروزه هر سروری نیاز به فضای بیشتری با توجه به نیاز مان دارد. logical volume ها میتوانند در RAID و SAN مورد استفاده قرار بگیرند. یک دیسک فیزیکی به منظور ایجادی یک volume group گروه بندی خواهد شد.

    درون volume group ما باید فضا را برای ایجاد logical volume جدا کنیم. با استفاده از logical volume ها ما میتوانیم فضا را با استفاده از چندین دیسک افزایش و کاهش دهیم. که این امر تنها با چندین دستور بدون دوباره فرمت کردن و دوباره پارتیشن کردن دیسک جاری انجام میشود.

    هشدار : تا زمانیکه نمیدانید دقیقا باید چکار کنید، پارتیشن ها را ایجاد، حذف یا تغییر ندهید. در صورتی که تسلط کافی بر روی دستورات ندارید پیشنهاد میشود از ابزارهای گرافیکی مانند GParted استفاده کنید.


    همچنین توصیه میشود مطالعه کنید :

    معرفی روش های مخلتف پارتیشن بندی هارد در لینوکس

    ابزار گرافیکی GParted برای پارتیشن بندی هارد در لینوکس

    دستور Fdisk برای پارتیشن کردن هارد در لینوکس



    ویژگی های LVM :
    - با استفاده از آن در هر زمانی فضا را میتوان افزایش داد.
    - هر فایل سیستمی میتواند نصب و کنترل شود.
    - انتقال اطلاعات به منظور recover کردن دیسک های ناقص میتواند صورت پذیرد.
    - Restore فایل سیستم با استفاده از ابزار Snapshot برای مراحل بعدی نیز امکان پذیر است.


    تنظیمات و تجهیزات سرور من :
    سیستم عامل : CentOS 6.5 به همراه نصب lvm
    IP Address سرور : 192.168.0.200


    بخش های زیر در حقیقت آموزش هایی هستند که برای نصب و راه اندازی و سایر تنظیمات LVM یا Logical Volume Management تهیه و در غالب 6 پارت در زیر لیست شده اند :

    بخش دوم : How to Extend/Reduce LVM’s in Linux

    بخش سوم : How to Take Snapshot of Logical Volume and Restore in LVM

    بخش چهارم : Setup 4hin Provisioning Volumes in LVM

    بخش پنجم : Manage Multiple LVM Disks using Striping I/O

    بخش ششم : Migrating LVM Partitions to New Logical Volume (Drive)



    ایجاد lvm disk storage در لینوکس :

    1 - ما سیستم عامل centos 6.5 داریم و از lvm در یک ویرچوال دیسک (SDA) استفاده میکنیم. در اینجا ما میتوانیم با دستورات زیر
    pv که مخفف physical volum و vg مخفف volume group و lv مخفف logical volume را مشاهده کنیم :
    کد PHP:
    [root@linux-zone ~]# pvs
      
    PV         VG           Fmt  Attr PSize PFree
      
    /dev/sda2  vg_linuxzone lvm2 a--  4.51g    0 
    کد PHP:
    [root@linux-zone ~]# vgs
      
    VG           #PV #LV #SN Attr   VSize VFree
      
    vg_linuxzone   1   2   0 wz--n4.51g    0 
    کد PHP:
    [root@linux-zone ~]# lvs
      
    LV      VG           Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
      lv_root vg_linuxzone 
    -wi-ao----   4.01g
      lv_swap vg_linuxzone 
    -wi-ao---- 512.00m 
    توضیحات دستورات بالا :
    Physical Disk Size (PV Size)
    Disk which used was Virtual Disk sda2.

    Volume Group Size (VG Size)
    Volume Group name (vg_linuxzone)

    Logical Volume name (LogVol00, LogVol01)
    lv_root Assigned for / with 4GB Size
    lv_swap Assigned for sawp with 512MB


    از اینجا ما متوانیم بفهمیم که فضای آزاد کافی در دیسک sda2 موجود نمیباشد.


    2 - برای ایجاد یک volume group جدید ما نیاز داریم که 3 عدد هارد دیسک اضافی به این سرور اضافه کنیم. البته استفاده از 3 درایو اجباری نیست و تنها یکی از آنها برای ایجاد یک VG جدید و LV درون آن VG کافیست. من برای نمایش ابزار بیشتر، از 3 هارد استفاده میکنم.

    آنچه در زیر میبینید دیسک های است که اضافه کرده ام :
    کد PHP:
    sdbsdcsdd 
    با دستور fdisk -l میتوانید لیست دیسک های موجود و همچنین دیسک هایی که اضافه شده است را مشاهده کنید :
    کد PHP:
    [root@linux-zone ~]# fdisk -l

    Disk /dev/sda5368 MB5368709120 bytes
    255 heads
    63 sectors/track652 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00071965

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary
    .
    /
    dev/sda2              64         653     4729856   8e  Linux LVM
    Partition 2 does not end on cylinder boundary
    .


    Disk /dev/sdb21.5 GB21474836480 bytes
    255 heads
    63 sectors/track2610 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00000000

    Disk 
    /dev/sdc21.5 GB21474836480 bytes
    255 heads
    63 sectors/track2610 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00000000

    Disk 
    /dev/sdd21.5 GB21474836480 bytes
    255 heads
    63 sectors/track2610 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00000000 
    هرکدام از دیسک ها 21 گیگ میباشند. سایز پیش فرض PE از یک volume group برابر با 4 MB میباشد. volume group که ما در این سرور استفاده میکنیم با استفاده PE پیش فرض کانفیگ شده است. با استفاده از دستور vgdisplay ما میتوانیم اطلاعات مربوط به volum group مان را به دست آوریم :
    کد PHP:
    [root@linux-zone ~]# vgdisplay
      
    --- Volume group ---
      
    VG Name               vg_linuxzone
      System ID
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  3
      VG Access             read
    /write
      VG Status             resizable
      MAX LV                0
      Cur LV                2
      Open LV               2
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               4.51 GiB
      PE Size               4.00 MiB
      Total PE              1154
      Alloc PE 
    Size       1154 4.51 GiB
      Free  PE 
    Size       0 0
      VG UUID               tX6XrR
    -9riz-tGgm-DZHe-nyrZ-jS9g-Ae8jzg 
    توضیحات دستور vgdisplay :

    VG Name :
    نام volume group میباشد.

    Format :
    معماری lvm استفاده شده از طریق LVM2

    VG Access :
    volume group در حال خواندن و نوشتن است همچنین آماده برای استفاده میباشد.

    VG Statuse :
    volume group میتواند تغییر سایز داده شود. ما میتوانیم در صورت نیاز به فضای بیشتر آن را افزایش دهیم.

    Cur LV :
    عموما دو عدد logical volume در این volume group بوده است.

    Cur PV و Act PV :
    عموما از physical disk1 یا (sda) استفاده میشود و فعال است.

    PE Size یا Physical Extends :
    سایز یک دیسک میتواند با استفاده از سایز PE یا GB تعریف شود. سایز پیش فرض PE برابر با 4MB از lvm میباشد. اگر ما نیاز به ایجاد logical volume با اندازه 5 GB داشته باشیم میتوانیم از مجموع 1280 PE استفاده کنیم.
    کد PHP:
    1024MB 1GB, if so 1024MB x 5 5120PE 5GBNow Divide the 5120/12804 is the Default PE Size
    Total PE :
    مقداری که این volum group دارد.

    Alloc PE :
    Total PE Used, full PE already Used, 1154 x 4PE = 4616.

    Free PE :
    Here it’s already used so there was no free PE.


    3 - تنها sda استفاده شده که centos روی آن نصب شده boot , / , swap/ و فضایی در این دیسک باقی نمانده. با دستور زیر فضای دیسک چک میشود :
    کد PHP:
    [root@linux-zone ~]# df -TH
    Filesystem                       Type   Size  Used Avail Use% Mounted on
    /dev/mapper/vg_linuxzone-lv_root ext4   4.3G  760M  3.3G  19% /
    tmpfs                            tmpfs  768M     0  768M   0% /dev/shm
    /dev/sda1                        ext4   508M   35M  448M   8% /boot 
    همانطور که در بالا مشاهده مکنید، mount point که ما استفاده میکنیم به صورت کامل 4 گیگ آن برای root استفاده شده در نتیجه فضای آزادی موجود نمیباشد.


    4 - بنابراین بیایید physical volume یا (PV) جدید و همچنین volume group یا VG به اسم habili_add_vg ایجاد کنید سپس logical volume یا lv را در آن بسازید. در اینجا ما 3 عدد logical volume به نام linux-zone_document و linux-zone_music و linux-zone_public میتوانیم ایجاد کنیم.

    ما میتوانیم volume group در حال حاضر را افزایش دهیم تا فضای بیشتری به دست بیاوریم اما در اینجا آنچه که قصد داریم انجام دهیم ایجاد volume group جدید و بررسی کردن این موضوع میباشد. بعدا نحوه افزایش volum group در حال استفاده را توضیح خواهیم داد.

    قبل از استفاده از یک دیسک جدید ما باید دیسک را با استفاده از fdisk پارتیشن کنید :
    کد PHP:
    # fdisk -cu /dev/sdb 
    آپشن c :
    مد DOS-compatible را خاموش میکند این گزینه توصیه میشود.

    آپشن u :
    در حالی که partition tables ها را لیست میکند آنها را به جای cylinder به sector به ما خواهد داد.

    در مرحله بعد مراحل زیر را برای ایجاد پارتیشن جدید دنبال میکنیم.
    کد PHP:
    [root@linux-zone ~]# fdisk -cu /dev/sdb
    Device contains neither a valid DOS partition tablenor SunSGI or OSF disklabel
    Building a 
    new DOS disklabel with disk identifier 0x1d224190.
    Changes will remain in memory onlyuntil you decide to write them.
    After thatof coursethe 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
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First sector (2048-41943039, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
    Using default value 41943039

    Command (m for help): t
    Selected partition 1
    Hex code (type L to list codes): L

     0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
     1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
     2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
     3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
     4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx
     5  Extended        42  SFS             86  NTFS volume set da  Non-FS data
     6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
     7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
     8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
     9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access
     a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
     b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor
     c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
     e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT
     f  W95 Ext'
    (LBA55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
    10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
    11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
    12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor
    14  Hidden FAT16 
    <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
    16  Hidden FAT16    64  Novell Netware  af  HFS 
    HFS+      fb  VMware VMFS
    17  Hidden HPFS
    /NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
    18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
    1b  Hidden W95 FAT3 75  PC
    /IX           bb  Boot Wizard hid fe  LANstep
    1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT
    1e  Hidden W95 FAT1
    Hex code 
    (type L to list codes): 8e
    Changed system type of partition 1 to 8e 
    (Linux LVM)

    Command (for help): p

    Disk 
    /dev/sdb21.5 GB21474836480 bytes
    255 heads
    63 sectors/track2610 cylinderstotal 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
    0x1d224190

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   8e  Linux LVM

    Command 
    (for help): w
    The partition table has been altered
    !

    Calling ioctl() to re-read partition table.
    Syncing disks
    توضیحات دستور بالا :
    - انتخاب n برای ایجاد پارتیشن جدید
    کد:
    (Command (m for help): n)
    - انتخاب p برای ایجاد یک primery partition
    کد:
    Command action
       e   extended
       p   primary partition (1-4)
    p
    - انتخاب تعداد پارتیشن هایی که ما میخواهیم ایجاد کنیم.
    کد:
    Partition number (1-4): 1
    - فشار دادن 2 بار enter برای استفاده از فضای کامل دیسک
    کد:
    First sector (2048-41943039, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):
    Using default value 41943039
    - نیاز داریم که type پارتیشن ایجاد شده جدید را تغییر دهیم که برای این منظور t را تایپ میکنیم.
    کد:
    Command (m for help): t
    - کدام پارتیشن را باید تغییر دهیم، شماره پارتیشنی که ایجاد کردیم را انتخاب میکنیم که در اینجا 1 میباشد.
    کد:
    Selected partition 1
    - در اینجا باید type پارتیشن را تغییر دهیم. ما نیاز داریم lvm ایجاد کنیم در نتیجه باید type code lvm را استفاده کنیم که 8e میباشد. اگر type code را نمیدانید L را فشار دهید تا تمام type code ها لیست شود.
    کد:
    Hex code (type L to list codes): 8e
    Changed system type of partition 1 to 8e (Linux LVM)
    - p پارتیشنی که ما ساختیم را برای تایید print میکند.
    کد:
    Command (m for help): p
    
    Disk /dev/sdb: 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: 0x1d224190
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   8e  Linux LVM
    - در اینجا ما میتوانیم ID با عنوان 8e LINUX LVM را مشاهد کنیم.
    کد:
     Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   8e  Linux LVM
    - با w تغییرات را write کرده و از fidsk خارج میشویم.
    کد:
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
    مراحل بالا را برای 2 هارد دیسک sdc و sdd هم انجام میدهیم تا پارتیشن های جدید ایجاد شوند. و بعد از آن ماشین را restart میکنیم تا partition table توسط fdisk تایید شود.
    کد PHP:
    [root@linux-zone ~]# fdisk -l

    Disk /dev/sda5368 MB5368709120 bytes
    255 heads
    63 sectors/track652 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00071965

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          64      512000   83  Linux
    Partition 1 does not end on cylinder boundary
    .
    /
    dev/sda2              64         653     4729856   8e  Linux LVM
    Partition 2 does not end on cylinder boundary
    .

    Disk /dev/sdb21.5 GB21474836480 bytes
    213 heads
    34 sectors/track5791 cylinders
    Units 
    cylinders of 7242 512 3707904 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x1d224190

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1        5792    20970496   8e  Linux LVM

    Disk 
    /dev/sdc21.5 GB21474836480 bytes
    213 heads
    34 sectors/track5791 cylinders
    Units 
    cylinders of 7242 512 3707904 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x84208382

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdc1               1        5792    20970496   8e  Linux LVM

    Disk 
    /dev/sdd21.5 GB21474836480 bytes
    213 heads
    34 sectors/track5791 cylinders
    Units 
    cylinders of 7242 512 3707904 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0xd5cf57f0

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdd1               1        5792    20970496   8e  Linux LVM

    Disk 
    /dev/mapper/vg_linuxzone-lv_root4303 MB4303355904 bytes
    255 heads
    63 sectors/track523 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00000000


    Disk 
    /dev/mapper/vg_linuxzone-lv_swap536 MB536870912 bytes
    255 heads
    63 sectors/track65 cylinders
    Units 
    cylinders of 16065 512 8225280 bytes
    Sector size 
    (logical/physical): 512 bytes 512 bytes
    I
    /O size (minimum/optimal): 512 bytes 512 bytes
    Disk identifier
    0x00000000 

    ایجاد physical volume ها :

    5 - اکنون physical volume را با استفاده از هر 3 دیسک ایجاد میکنیم. با استفاده از دستور pvs دیسک های physical را list میکنیم. تنها یک pvs پیش فرض list شده است :
    کد PHP:
    [root@linux-zone ~]# pvs
      
    PV         VG           Fmt  Attr PSize PFree
      
    /dev/sda2  vg_linuxzone lvm2 a--  4.51g    0 
    سپس physical disk های جدید را میسازیم :
    کد PHP:
    [root@linux-zone ~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1

      
    dev_is_mpathfailed to get device for 8:17
      Physical volume 
    "/dev/sdb1" successfully created
      dev_is_mpath
    failed to get device for 8:33
      Physical volume 
    "/dev/sdc1" successfully created
      dev_is_mpath
    failed to get device for 8:49
      Physical volume 
    "/dev/sdd1" successfully created 
    یکبار دیگر دیسک ها را لیست میکنیم تا physical disk های ایجاد شده جدید را ببینیم :
    کد PHP:
    [root@linux-zone ~]# pvs
      
    PV         VG           Fmt  Attr PSize  PFree
      
    /dev/sda2  vg_linuxzone lvm2 a--   4.51g     0
      
    /dev/sdb1               lvm2 a--  20.00g 20.00g
      
    /dev/sdc1               lvm2 a--  20.00g 20.00g
      
    /dev/sdd1               lvm2 a--  20.00g 20.00g 

    ایجاد volume group ها :

    6 - volume group با نام habili_add_vg را با استفاده از PV ازاد را ایجاد میکنیم که با استفاده از سایز PE 32 میسازیم.
    برای نمایش volume group های جاری در حال حاضر ما میتوانیم دستور زیر را اجرا کنیم که همانطور که میبینید تنها یک volume group که تنها از یک PV استفاده میکند موجود است :
    کد PHP:
    [root@linux-zone ~]# vgs
      
    VG           #PV #LV #SN Attr   VSize VFree
      
    vg_linuxzone   1   2   0 wz--n4.51g    0 
    دستور زیر volume group با نام habili_add_vg را با استفاده از سایز PE 32MB و با استفاده از 3 عدد physical volum که در مرحله قبل ایجاد کردیم را خواهد ساخت :
    کد PHP:
    [root@linux-zone ~]# vgcreate -s 32M habili_add_vg /dev/sdb1 /dev/sdc1 /dev/sdd1
      
    Volume group "habili_add_vg" successfully created 
    سپس volume group را با استفاده از دستور vgs چک و بررسی میکنیم :
    کد PHP:
    [root@linux-zone ~]# vgs
      
    VG            #PV #LV #SN Attr   VSize  VFree
      
    habili_add_vg   3   0   0 wz--n59.91g 59.91g
      vg_linuxzone    1   2   0 wz
    --n-  4.51g     0 
    توضیحات خروجی دستور vgs :

    VG : نام volume group
    PV : برابر است با physical volume های استفاده شده در این volume group
    VFree : نمایش فضای آزاد قابل استفاده در این volume group
    VSize : نمایش کل سایز volume group
    LV : نمایش logical volume های درون این volume group، که در اینجا چون هنوز چیزی ایجاد نکرده ایم 0 نشان میدهد.
    SN : تعداد snapshot هایی که برای این volume group میباشد.
    ATTR : وضعیت volume group مانند Writeable, readable, resizeable, exported, partial and clustered اینجا -wz--n یعنی w=writable و z=resizeable


    7 - برای نمایش اطلاعات بیشتر درباره volume group دستور زیر را اجرا کنید :
    کد PHP:
    [root@linux-zone ~]# vgs -v
        
    Finding all volume groups
        Finding volume group 
    "habili_add_vg"
        
    Finding volume group "vg_linuxzone"
      
    VG            Attr   Ext    #PV #LV #SN VSize  VFree  VG UUID                                VProfile
      
    habili_add_vg wz--n32.00m   3   0   0 59.91g 59.91g Yd7bTB-Vcfg-8QWd-7Qdk-3zqR-WUPL-PKQoBu
      vg_linuxzone  wz
    --n-  4.00m   1   2   0  4.51g     0  tX6XrR-9riz-tGgm-DZHe-nyrZ-jS9g-Ae8jzg 

    8 - برای دریافت اطلاعات بیشتر درباره volume group جدید ساخته شده دستور زیر را اجرا کنید :
    کد PHP:
    [root@linux-zone ~]# vgdisplay habili_add_vg
      
    --- Volume group ---
      
    VG Name               habili_add_vg
      System ID
      Format                lvm2
      Metadata Areas        3
      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                3
      Act PV                3
      VG Size               59.91 GiB
      PE Size               32.00 MiB
      Total PE              1917
      Alloc PE 
    Size       0 0
      Free  PE 
    Size       1917 59.91 GiB
      VG UUID               Yd7bTB
    -Vcfg-8QWd-7Qdk-3zqR-WUPL-PKQoBu 
    توضیحات دستور بالا :

    VG Name : نام volume group
    Format : معماری lvm استفاده شده
    VG Access : میتواند read و write شود و آماده برای استفاده است.
    VG Status : این volume group میتواند resize شود.
    Act PV و Cur PV : هیچ physical disk استفاده نشده و آنها active هستند.
    VG Size : سایز کامل volume group
    PE Size : اینجا سایز یک PE مجزا 32 بوده است.
    Total PE : تعداد کل PE موجود در این volume group
    Free PE / Size : در حال حاضر ما هیچ lv درون این vg هنوز نساخته ایم بنابراین کاملا آزاد میباشد.
    VG UUID : برابر است با uuid مربوط به این volume group


    ایجاد Logical Volumes :

    9 - اکنون 3 تا Logical volume با نام های linux-zone_document و linux-zone_music و linux-zone_public را ایجاد میکنیم. در اینجا ما میتوانیم چگونگی ایجاد logical volume ها را با استفاده از سایز PE و GB مشاهده خواهیم کرد. ابتدا logical volume های موجود را با استفاده از دستور زیر لیست میکنیم :
    کد PHP:
    [root@linux-zone ~]# lvs
      
    LV      VG           Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
      lv_root vg_linuxzone 
    -wi-ao----   4.01g
      lv_swap vg_linuxzone 
    -wi-ao---- 512.00m 

    10 - این logical volume ها در volume group که نام آن vg_linuxzone است میباشند. با استفاده از دستور pvs ببینید چه مقدار فضای آزاد برای ایجاد logical volume ها موجود است :
    کد PHP:
    [root@linux-zone ~]# pvs
      
    PV         VG            Fmt  Attr PSize  PFree
      
    /dev/sda2  vg_linuxzone  lvm2 a--   4.51g     0
      
    /dev/sdb1  habili_add_vg lvm2 a--  19.97g 19.97g
      
    /dev/sdc1  habili_add_vg lvm2 a--  19.97g 19.97g
      
    /dev/sdd1  habili_add_vg lvm2 a--  19.97g 19.97g 
    کد PHP:
    [root@linux-zone ~]# vgs
      
    VG            #PV #LV #SN Attr   VSize  VFree
      
    habili_add_vg   3   0   0 wz--n59.91g 59.91g
      vg_linuxzone    1   2   0 wz
    --n-  4.51g     0 

    11 - سایز volume group برابر با 60 GB است که استفاده نشده در نتیجه میتوانید در آن lv ایجاد کنید. اکنون volume group را به سایز های مساوی تقسیم میکنیم تا 3 عدد logical volume ایجاد کنیم. این یعنی 60/3 (60 تقسیم بر 3) که برابر با 20GB میشود. یک logical volume بعد از ایجاد 20 GB خواهد بود.


    روش اول :

    ایجاد logical volume با استفاده از سایز PE :
    در ابتدا logical volume ها را با استفاده از سایز physical extends یا PE ایجاد میکنیم. مانیاز داریم که سایز pe پیش فرض برای هر volume group و همچنین کل pe موجود برای ایجاد volume group های جدید را بدانید. دستور زیر را برای به دست اوردن اطلاعات اجرا میکنیم :
    کد PHP:
    [root@linux-zone ~]# vgdisplay habili_add_vg
      
    --- Volume group ---
      
    VG Name               habili_add_vg
      System ID
      Format                lvm2
      Metadata Areas        3
      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                3
      Act PV                3
      VG Size               59.91 GiB
      PE Size               32.00 MiB
      Total PE              1917
      Alloc PE 
    Size       0 0
      Free  PE 
    Size       1917 59.91 GiB
      VG UUID               Yd7bTB
    -Vcfg-8QWd-7Qdk-3zqR-WUPL-PKQoBu 
    توضیحات دستور بالا :
    - PE پیش فرض در نظر گرفته شده برای این VG برابر با 32MB است.
    - کل PE موجود 1917 است.

    با استفاده از دستور bc محاسبات اندکی را انجام و مشاهده نمایید :
    نکته : اگر bc را روی سیستم خود ندارید میتوانید با استفاده از دستور yum install bc آن را نصب کنید.
    کد PHP:
    [root@linux-zone ~]# bc
    bc 1.06.95
    Copyright 1991
    -199419971998200020042006 Free Software FoundationInc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For 
    details type `warranty'.


    1917/3
    639

    639*32
    20448

    20448/1024
    19 
    کلید CRTL+D را برای خارج شدن از bc فشار دهید. اکنون با استفاده از PE 639 تعداد 3 عدد logical volume ایجاد میکنیم :
    کد PHP:
    # lvcreate -l (Extend size) -n (name_of_logical_volume) (volume_group)

    [root@linux-zone ~]# lvcreate -l 639 -n linux-zone_document habili_add_vg
      
    Logical volume "linux-zone_document" created
    [root@linux-zone ~]#
    [root@linux-zone ~]# lvcreate -l 639 -n linux-zone_music habili_add_vg
      
    Logical volume "linux-zone_music" created
    [root@linux-zone ~]#
    [root@linux-zone ~]# lvcreate -l 639 -n linux-zone_public habili_add_vg
      
    Logical volume "linux-zone_public" created 
    آپشن l- : استفاده از extent size
    آپشن n- : تخصیص نام به یک logical volume


    با استفاده از دستور lvs میتوانیم logical volume های ایجاد شده را لیست کنیم :
    کد PHP:
    [root@linux-zone ~]# lvs
      
    LV                  VG            Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
      linux
    -zone_document habili_add_vg -wi-a-----  19.97g
      linux
    -zone_music    habili_add_vg -wi-a-----  19.97g
      linux
    -zone_public   habili_add_vg -wi-a-----  19.97g
      lv_root             vg_linuxzone  
    -wi-ao----   4.01g
      lv_swap             vg_linuxzone  
    -wi-ao---- 512.00m 

    روش 2 :

    ایجاد logical volume ها با استفاده از سایز GB :
    اگر logical volume را با استفاده از سایز GB ایجاد کنیم دیگر نمیتوانیم سایز دقیق را به دست بیاوریم در نتیجه بهترین راه استفاده از extend میباشد :
    کد PHP:
    # lvcreate -L 18G -n linux-zone_document habili_add_vg

    # lvcreate -L 18G -n linux-zone_music habili_add_vg

    # lvcreate -L 18G -n linux-zone_public habili_add_vg
      
    Volume group "habili_add_vg" has insufficient free space (0 extents): 576 required.

    # lvcreate -L 17.8G -n linux-zone_public habili_add_vg 
    اینجا میتوانیم ببینیم که زمانی که در حال ایجاد سومین lv هستیم نمیتوانیم از 18 GB استفاده کنیم و این به دلیل تغییرات کوچک در سایز است. اما چنین مشکلاتی در زمان استفاده از extend size مشاهده نمیشود.

    با استفاده از کامند lvs میتوانیم logical volume های ایجاد شده را لیست کنیم :
    کد PHP:
    # lvs 

    ایجاد فایل سیستم :

    12 - برای استفاده از logical volume ها باید انها را format کنیم. اینجا من از فایل سیستم ext4 استفاده میکنم و آنها را تحت mnt/ مانت (mount) میکنم :
    کد PHP:
    # mkfs.ext4 /dev/habili_add_vg/linux-zone_document

    # mkfs.ext4 /dev/habili_add_vg/linux-zone_music

    # mkfs.ext4 /dev/habili_add_vg/linux-zone_public 
    کد PHP:
    [root@linux-zone ~]# mkfs.ext4 /dev/habili_add_vg/linux-zone_document
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS typeLinux
    Block size
    =4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocksStripe width=0 blocks
    1310720 inodes
    5234688 blocks
    261734 blocks 
    (5.00%) reserved for the super user
    First data block
    =0
    Maximum filesystem blocks
    =4294967296
    160 block groups
    32768 blocks per group
    32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks
    :
            
    327689830416384022937629491281920088473616056322654208,
            
    4096000

    Writing inode tables
    done
    Creating journal 
    (32768 blocks): done
    Writing superblocks 
    and filesystem accounting informationdone

    This filesystem will be automatically checked every 28 mounts 
    or
    180 dayswhichever comes first.  Use tune2fs -or -i to override.
    [
    root@linux-zone ~]#
    [root@linux-zone ~]#
    [root@linux-zone ~]# mkfs.ext4 /dev/habili_add_vg/linux-zone_music
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS typeLinux
    Block size
    =4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocksStripe width=0 blocks
    1310720 inodes
    5234688 blocks
    261734 blocks 
    (5.00%) reserved for the super user
    First data block
    =0
    Maximum filesystem blocks
    =4294967296
    160 block groups
    32768 blocks per group
    32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks
    :
            
    327689830416384022937629491281920088473616056322654208,
            
    4096000

    Writing inode tables
    done
    Creating journal 
    (32768 blocks): done
    Writing superblocks 
    and filesystem accounting informationdone

    This filesystem will be automatically checked every 34 mounts 
    or
    180 dayswhichever comes first.  Use tune2fs -or -i to override.
    [
    root@linux-zone ~]#
    [root@linux-zone ~]#
    [root@linux-zone ~]# mkfs.ext4 /dev/habili_add_vg/linux-zone_public
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS typeLinux
    Block size
    =4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocksStripe width=0 blocks
    1310720 inodes
    5234688 blocks
    261734 blocks 
    (5.00%) reserved for the super user
    First data block
    =0
    Maximum filesystem blocks
    =4294967296
    160 block groups
    32768 blocks per group
    32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks
    :
            
    327689830416384022937629491281920088473616056322654208,
            
    4096000

    Writing inode tables
    done
    Creating journal 
    (32768 blocks): done
    Writing superblocks 
    and filesystem accounting informationdone

    This filesystem will be automatically checked every 26 mounts 
    or
    180 dayswhichever comes first.  Use tune2fs -or -i to override

    13 - در اینجا با استفاده از دستور mkdir پوشه ها را در mnt/ میسازیم و logical volume های ایجاد شده را به آنها mount میکنیم :
    کد PHP:
    [root@linux-zone ~]# mkdir /mnt/linux-zone_document
    [root@linux-zone ~]# mkdir /mnt/linux-zone_music
    [root@linux-zone ~]# mkdir /mnt/linux-zone_public
    [root@linux-zone ~]#
    [root@linux-zone ~]# mount /dev/habili_add_vg/linux-zone_document /mnt/linux-zone_document/
    [root@linux-zone ~]# mount /dev/habili_add_vg/linux-zone_music /mnt/linux-zone_music/
    [root@linux-zone ~]# mount /dev/habili_add_vg/linux-zone_public /mnt/linux-zone_public/ 
    با استفاده از دستور df -h پارتیشن های mount شده را list میکنیم :
    کد PHP:
    [root@linux-zone ~]# df -h
    Filesystem                                      Size  Used Avail Use% Mounted on
    /dev/mapper/vg_linuxzone-lv_root                4.0G  758M  3.1G  20% /
    tmpfs                                           733M     0  733M   0% /dev/shm
    /dev/sda1                                       485M   33M  427M   8% /boot
    /dev/mapper/habili_add_vg-linux--zone_document   20G  172M   19G   1% /mnt/linux-zone_document
    /dev/mapper/habili_add_vg-linux--zone_music      20G  172M   19G   1% /mnt/linux-zone_music
    /dev/mapper/habili_add_vg-linux--zone_public     20G  172M   19G   1% /mnt/linux-zone_public 

    mount کردن دایمی :

    روش بالا به صورت موقتی mount شده، برای مانت به صورت دایمی ما نیاز داریم که ما آنها را به fstab اضافه کنیم. برای این منظور ابتدا از mtab ورودی mount را دریافت میکنیم :
    کد PHP:
    [root@linux-zone ~]# cat /etc/mtab

    /dev/mapper/vg_linuxzone-lv_root ext4 rw 0 0
    proc 
    /proc proc rw 0 0
    sysfs 
    /sys sysfs rw 0 0
    devpts 
    /dev/pts devpts rw,gid=5,mode=620 0 0
    tmpfs 
    /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0
    /dev/sda1 /boot ext4 rw 0 0
    none 
    /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
    /dev/mapper/habili_add_vg-linux--zone_document /mnt/linux-zone_document ext4 rw 0 0
    /dev/mapper/habili_add_vg-linux--zone_music /mnt/linux-zone_music ext4 rw 0 0
    /dev/mapper/habili_add_vg-linux--zone_public /mnt/linux-zone_public ext4 rw 0 0 
    سپس ورودی کپی کرده از mtab را به fstab اضافه میکنیم. دستور زیر را اجرا کنید :
    کد PHP:
    # vim /etc/fstab 
    فایل fstab ما باید شبیه به نمونه زیر باشد. با !wq آن را ذخیره و از آن خارج شوید :
    کد PHP:
    #
    # /etc/fstab
    # Created by anaconda on Sat Sep 10 02:08:59 2016
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/vg_linuxzone-lv_root /                       ext4    defaults        1 1
    UUID
    =a79abf6c-c31a-4075-9981-961cab84972e /boot                   ext4    defaults        1 2
    /dev/mapper/vg_linuxzone-lv_swap swap                    swap    defaults        0 0
    tmpfs                   
    /dev/shm                tmpfs   defaults        0 0
    devpts                  
    /dev/pts                devpts  gid=5,mode=620  0 0
    sysfs                   
    /sys                    sysfs   defaults        0 0
    proc                    
    /proc                   proc    defaults        0 0

    /dev/mapper/habili_add_vg-linux--zone_document /mnt/linux-zone_document ext4 rw 0 0
    /dev/mapper/habili_add_vg-linux--zone_music /mnt/linux-zone_music ext4 rw 0 0
    /dev/mapper/habili_add_vg-linux--zone_public /mnt/linux-zone_public ext4 rw 0 0

    دستور mount -av را برای چک کردن fstab قبل از restart اجرا کنید :
    کد PHP:
    [root@linux-zone ~]# mount -av
    mountUUID=a79abf6c-c31a-4075-9981-961cab84972e already mounted on /boot
    mount
    tmpfs already mounted on /dev/shm
    mount
    devpts already mounted on /dev/pts
    mount
    sysfs already mounted on /sys
    mount
    proc already mounted on /proc
    mount
    : /dev/mapper/habili_add_vg-linux--zone_document already mounted on /mnt/linux-zone_document
    mount
    : /dev/mapper/habili_add_vg-linux--zone_music already mounted on /mnt/linux-zone_music
    mount
    : /dev/mapper/habili_add_vg-linux--zone_public already mounted on /mnt/linux-zone_public
    nothing was mounted 
    در مطلب بالا نحوه تنظیم flexible storage با logical volume را با استفاده از physical disk به physical volum و physical volume به volume group و volume group به logical volume را توضیح دادیم. در مقالات بعدی نحوه کم و زیاد کردن فضا همچنین تهیه snapshot و restore از آن snapshot را اموزش بدهم. با ما باشید ....


    همچنین توصیه میشود مطالعه کنید :

    نحوه بازیابی فایل های حذف شده در Linux

    نحوه پیدا کردن بدسکتور (Bad Sector / Bad Block ها) در هارد دیسک لینوکس

    نحوه Defragment کردن هارد در لینوکس (تعمیر و Defrag پارتیشن ها و دایرکتوری ها)

    دستور df در لینوکس برای نمایش فضای مصرفی دیسک به همراه 12 مثال عملی

    دستور du در لینوکس برای پیدا کردن فضای مصرفی توسط فایل ها و دایرکتوری ها


    موفق باشید
    معصومه وحید
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 10-24-2019, 12:02 AM.
    Instagram : https://www.instagram.com/iranlinuxforum

    Voip Trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی
در حال انجام ...
X