إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

Logical Volume Manager - LVM

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • Logical Volume Manager - LVM

    السلام عليكم ورحمة الله وبركاته

    كيف يمكننا زيادة حجم البارتشن عندما نحتاج لذلك ؟ بالعامية لما يصير البارتشن full ومحتاج مساحة زايدة من أي بارتشن آخر ، متى يمكنني الاستفادة من تلك المساحة واضافتها للبارتشن المطلوب ؟

    اجابة هذا السؤال سهلة بشرط ان يكون البارتشن مهيأ لذلك ، بمعنى آخر يجب ان يكون البارتشن Logical Volume ويستخدم تقنية LVM لأعادة تحجيمة سواء بزيادة أو نقصان.

    سأشرح في هذا الموضوع طريقة عمل هذا النوع من البارتشن ( 8e ) بالاضافة الى طريقة اعادة التحكم واضافة بارتشن جديد وما اليه من أمور تهم المستخدم ، وسيكون السيناريو كما يلي.

    سنعمل 4 بارتشنات من نوع ( 8e ) ثم نربطهم جميعا ببارتشن جديد لنتحكم بحجمه كما نريد ، للتوضيح أكثر نقول أن البارتشنات الاربعه تسمى ( PV ) ، بعد ذلك يجب ربط الـ PV's الاربعه في بارتشن واحد يسمى ( VG ) للدلاله على انه يجمع عدة بارتشنات ، واخيرا سنقوم بعمل بارتشن من المساحة المتوفرة في ( VG ) الى بارتشن جديد يسمى ( LV ) وهو محور حديثنا.

    تعريف الاختصارات

    كود:
    PV = Physical Volume الاربع البارتشنات الحقيقية
    VG = Volume Group مجموعة تضم تلك البارتشنات وحجمها مجموع الاحجام
    LV = Logical Volume بارتشن حقيقي يمكننا من اعادة تحجيمة بسهولة

    هذه هي الخطوات فنحن سنقوم بانشاء عدد 4 بارتشن من نوع 8e يمكننا باستخدام الاداة fdisk ومن لا يعرف استخدامها لا انصحه بتطبيق الدرس ، يكتفي بالقراءة معي ، لان انشاء بارتشن جديد يجب ان يكون شي بديهي لمدير النظام ، ويمكنك الحصول على شرح للاداة ممن هنا و هنا ايضا

    بعد ذلك نقوم بجمع هذه البارتشنات تحت مجموعة واحدة VG ، ثم نستخرج من هذه المجموعة بارتشن جديد نستطيع اعادة تحجيمة ان احتجنا لذلك

    ستكون العملية أسهل عندما نتذكر التسمية المختصرة كما كتبتها أنا ، لان جميع الاوامر التي سنستخدمها ستبدأ بنفس التسمية كما سنرى في هذا الموضوع

    قبل كل شي ، يجب علينا اضافة المودل المطلوب للكيرنل بالنسبة لردهات ، هذا يعني اضافة مايلي في ملف /etc/modprobe.conf

    كود:
    alias block-major-58 lvm-mod
    alias char-major-109 lvm-mod
    ثم احفظ الملف

    بعد انشاء البارتشنز المطلوبة وبعد اعادة التشغيل ، ناتج الامر fdisk -l يجب ان يحتوي على مايلي

    كود:
    [[email protected] init.d]# fdisk -l
    
    Disk /dev/hda: 80.0 GB, 80026361856 bytes
    255 heads, 63 sectors/track, 9729 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    
       Device Boot   Start       End      Blocks   Id  System
    /dev/hda1   *      1         255     2048256   83  Linux
    /dev/hda2         256        2805    20482875   83  Linux
    /dev/hda3         2806        4080    10241437+  83  Linux
    /dev/hda4         4081        9729    45375592+   5  Extended
    /dev/hda5         4081        4203      987966   fd  Linux raid autodetect
    /dev/hda6         4204        4326      987966   fd  Linux raid autodetect
    /dev/hda7         4327        4449      987966   fd  Linux raid autodetect
    /dev/hda8         4450        4572      987966   fd  Linux raid autodetect
    /dev/hda9         4573        5181     4891761   83  Linux
    [COLOR="Red"]/dev/hda10        5182        5304      987966   8e  Linux LVM
    /dev/hda11        5305        5427      987966   8e  Linux LVM
    /dev/hda12        5428        5550      987966   8e  Linux LVM
    /dev/hda13        5551        5673      987966   8e  Linux LVM[/COLOR]

    انظر لنوع البارتشنات لدي من hda10 حتى hda13 هو Linux LVM

    نجعل هذه البارتشنات ( PV ) كما ذكرنا ، بالامر pvcreate كمايلي
    كود:
    [[email protected] init.d]# pvcreate /dev/hda10 /dev/hda11 /dev/hda12 /dev/hda13
      Physical volume "/dev/hda10" successfully created
      Physical volume "/dev/hda11" successfully created
      Physical volume "/dev/hda12" successfully created
      Physical volume "/dev/hda13" successfully created
    [[email protected] init.d]#
    بعد ذلك نجمعها داخل مجموعة ( VG ) كما أسلفت سابقا ، بالامر vgcreate
    كود:
    [[email protected] init.d]# vgcreate lvmhard /dev/hda10 /dev/hda11 /dev/hda12 /dev/hda13
      Volume group "lvmhard" successfully created
    [[email protected] init.d]#
    لاحظ اسم المجموعة lvmhard كما كتبته انا ويمكنك كتابة أي اسم تريد

    الان ننشئ البارتشن النهائي ( LV ) بالامر lvcreate على النحو التالي
    كود:
    [[email protected] init.d]# lvcreate -L 1G -n lvmpart lvmhard
      Logical volume "lvmpart" created
    [[email protected] init.d]#
    لاحظ الامر بعد الخيار (L-) قمت بتحديد الحجم 1 قيقا
    وبعد الخيار (n-) قمت بتحديد اسم البارتشن lvmpart ، والمجموعة التي ينتمي اليها lvmhard التي أنشأناها قبل قليل.

    هذه هي الصيغه ، ويمكنك تحديد الحجم الذي تريد حسب مجموع الاحجام في البارتشنات الحقيقية ( PV ) لو كان كل واحد فيهم 1 قيقا هذا يعني يمكنك استخدام حتى 4 قيقا لان هذا هو حجم المجموعة بعد ضم البارتشنات لها

    الان يصبح مكان البارتشن هنا
    كود:
    /dev/lvmhard/lvmpart
    على حسب التمسية التي اعطيت ، ولا يحتاج هذا البارتشن الا لفورمات فقط ليصبح نظام الملفات فيه ext3 نكتب الامر التالي
    كود:
    [[email protected] init.d]# mke2fs -j /dev/lvmhard/lvmpart
    mke2fs 1.35 (28-Feb-2004)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    131072 inodes, 262144 blocks
    13107 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=268435456
    8 block groups
    32768 blocks per group, 32768 fragments per group
    16384 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376
    
    Writing inode tables: done
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 37 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    [[email protected] init.d]#
    بعد ذلك أعمل mount له كما تعلمنا من هذا الدرس
    كود:
    [[email protected] ~]# mount /dev/lvmhard/lvmpart /root/lvm
    [[email protected] ~]#
    نتحقق من عمل البارتشن الجديد بالامر df
    كود:
    [[email protected] ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/hda2              20G  6.2G   13G  34% /
    /dev/hda1             2.0G   38M  1.8G   3% /boot
    /dev/hda3             9.7G   57M  9.1G   1% /home
    /dev/hdc              5.0M  5.0M     0 100% /media/cdrom
    /dev/md0              2.8G   37M  2.7G   2% /root/raid
    [COLOR="Red"]/dev/mapper/lvmhard-lvmpart 1008M   34M  924M   4% /root/lvm[/COLOR]
    يعمل كما يجب مثل مانشوف في السطر الاخير

    ولجعل ال mount دائم نضيف هذا السطر في ملف fstab
    كود:
    [[email protected] ~]# nano /etc/fstab
    
    /dev/lvmhard/lvmpart    /root/lvm               ext3    defaults        1 2
    ثم نكتب الامر
    كود:
    [[email protected] ~]# mount -a
    هذا كل ماعلينا فعله لانشاء بارتشن LVM ، وسأشرح الان كيف يمكننا اعادة تحجيمة بالاوامر المناسبة

    ويمكننا رؤية حالة البارتشن وحجمه ومعلومات اخرى من خلال الامر lvdisplay قم بكتابتة وانظر للخانه LV Size
    كود:
    [[email protected] ~]# lvdisplay
      --- Logical volume ---
      ....
      ....
     LV Size                1.00 GB
      ....
    [[email protected] ~]#
    كما ترى ان حجم البارتشن 1 قيقا

    لزيادة حجم البارتشن lvmpart نفعل ذلك بالامر lvextend كمايلي
    كود:
    [[email protected] ~]# lvextend -L +1G /dev/lvmhard/lvmpart
      Extending logical volume lvmpart to 2.00 GB
      Logical volume lvmpart successfully resized
    قمنا باضافة 1 قيقا للبارتشن واصبح حجمه 2 قيقا ، تحقق من ذلك باستخدام الامر lvdisplay مره اخرى

    ولتصغير حجم البارتشن /dev/lvmhard/lvmpart نفعل ذلك بالامر lvreduce على النحو التالي
    كود:
    [[email protected] ~]# lvreduce -L 1.5G /dev/lvmhard/lvmpart
      WARNING: Reducing active and open logical volume to 1.50 GB
      THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce lvmpart? [y/n]: y
      Reducing logical volume lvmpart to 1.50 GB
      Logical volume lvmpart successfully resized
    بحيث ان 1.5 قيقا هو الحجم الجديد بدلا من 2 قيقا ، يمكنك التحقق من ذلك باستخدام الامر lvdisplay مره ثالثه
    كود:
    [[email protected] ~]# lvdisplay
      --- Logical volume ---
      LV Name                /dev/lvmhard/lvmpart
      VG Name                lvmhard
      LV UUID                34Hqdd-Yqk3-qCnv-U4bm-7WQJ-z8ba-oT2729
      LV Write Access        read/write
      LV Status              available
      # open                 1
    [COLOR="Red"]  LV Size                1.50 GB[/COLOR]
      Current LE             384
      Segments               2
      Allocation             inherit
      Read ahead sectors     0
      Block device           253:0
    طبعا عند زيادة الحجم او انقاصها يجب علينا تنفيذ الامر التالي ، حتى تصبح التغيرات مفعله بشكل نهائي بالامر ext2online

    كود:
    ext2online -d /dev/lvmhard/lvmpart
    بعد ذلك تحقق من صحة الحجم ، بالامر df -h

    لاضافة بارتشن جديد للمجموعة :

    نقوم بعمل البارتشن باستخدام الاداة fdisk من نوع 8e ثم نجعله (PV) بالامر pvcreate ، ثم نضيفة للمجموعة بالامر vgextend.

    تبدو العملية طويله ولكنها قصيره بالنظر الى اللون الاحمر فقط من مسلسل الاوامر التالية
    كود:
    [[email protected] ~]# [COLOR="Red"]fdisk /dev/hda[/COLOR]
    
    The number of cylinders for this disk is set to 9729.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
       (e.g., DOS FDISK, OS/2 FDISK)
    
    Command (m for help): [COLOR="Red"]n[/COLOR]
    First cylinder (5674-9729, default 5674):
    Using default value 5674
    Last cylinder or +size or +sizeM or +sizeK (5674-9729, default 9729): [COLOR="Red"]+1GB[/COLOR]
    
    Command (m for help): [COLOR="Red"]t[/COLOR]
    Partition number (1-14): [COLOR="Red"]14[/COLOR]
    Hex code (type L to list codes): [COLOR="Red"]8e[/COLOR]
    Changed system type of partition 14 to 8e (Linux LVM)
    
    Command (m for help): [COLOR="Red"]w[/COLOR]
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    
    WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
    The kernel still uses the old table.
    The new table will be used at the next reboot.
    Syncing disks.
    [[email protected] ~]# [COLOR="Red"]init 6[/COLOR] <-- لاعادة تشغيل الجهاز
    [[email protected] ~]# [COLOR="Red"]pvcreate /dev/hda14[/COLOR]
      Physical volume "/dev/hda14" successfully created
    [[email protected] ~]# [COLOR="Red"]vgextend lvmhard /dev/hda14[/COLOR]
      Volume group "lvmhard" successfully extended
    [[email protected] ~]#
    كما ترى قمت بانشاء البارتشن وحددت نوعه فأعدت تشغيل الجهاز ثم طبقت عليه الامر pvcreate ثم الامر vgextend على اعتبار ان hda14 هو البارتشن الجديد للمجموعة lvmhard


    لازالة البارتشن من المجموعة نستخدم الامر vgreduce كما يلي
    كود:
    [[email protected] ~]# vgreduce lvmhard /dev/hda14
      Removed "/dev/hda14" from volume group "lvmhard"
    [[email protected] ~]#




    وسلامتكم ،،،




    بعد فهم السيناريو وقرائته مرتين على الاقل ، وطريقة تطبيق الاوامر ، يمكنك تذكر كل شي بسهولة بعد قراءة السطور التاليه

    لانشاء ( PV ) استخدم الامر pvcreate
    لانشاء ( VG ) استخدم الامر vgcreate
    لانشاء ( LV ) استخدم الامر lvcreate
    لمعرفة معلومات عن ( PV ) اكتب الامر pvdisplay
    لمعرفة معلومات عن ( VG ) اكتب الامر vgdisplay
    لمعرفة معلومات عن ( LV ) اكتب الامر lvdisplay
    لاضافة بارتشن للمجموعه ، نجعله ( PV ) ثم نستخدم الامر vgextend
    لازالة بارتشن من المجموعة ، نستخدم الامر vgreduce
    لزيادة حجم البارتشن ( LV ) استخدم الامر lvextend
    لتصغير حجم البارتشن ( LV ) استخدم الامر lvreduce


    لاعادة التحجيم يمكنك استخدام الامر e2fsadm وطريقته اسهل ، لكنه لم يعمل معي لذا لم أكتب عنه واستخدمت الاوامر المذكورة في الموضوع





    هذا المقال خالص لوجه الله تعالى فللجميع حق التعديل عليه بتحديثه ليكون افضل

  • #2
    شكرا لك على الطريقة لكنها صعبة والموضوع قديم

    الايوجد حاليا برنامج يقوم بذلك مثل برامج الويندوز؟

    حيث اننى زدت حجم الرامات واريد زيادة السواب
    تم تعديل التوقيع من قبل الإدارة

    تعليق


    • #3
      السواب ماعتقد عندك مشكلة لو تحذفه وترجع تعمله من جديد ،،، كلها fdisk

      وبالنسبة للوندوز لا اعلم

      تعليق

      يعمل...
      X