السلام عليكم ورحمة الله وبركاته
كيف يمكننا زيادة حجم البارتشن عندما نحتاج لذلك ؟ بالعامية لما يصير البارتشن full ومحتاج مساحة زايدة من أي بارتشن آخر ، متى يمكنني الاستفادة من تلك المساحة واضافتها للبارتشن المطلوب ؟
اجابة هذا السؤال سهلة بشرط ان يكون البارتشن مهيأ لذلك ، بمعنى آخر يجب ان يكون البارتشن Logical Volume ويستخدم تقنية LVM لأعادة تحجيمة سواء بزيادة أو نقصان.
سأشرح في هذا الموضوع طريقة عمل هذا النوع من البارتشن ( 8e ) بالاضافة الى طريقة اعادة التحكم واضافة بارتشن جديد وما اليه من أمور تهم المستخدم ، وسيكون السيناريو كما يلي.
سنعمل 4 بارتشنات من نوع ( 8e ) ثم نربطهم جميعا ببارتشن جديد لنتحكم بحجمه كما نريد ، للتوضيح أكثر نقول أن البارتشنات الاربعه تسمى ( PV ) ، بعد ذلك يجب ربط الـ PV's الاربعه في بارتشن واحد يسمى ( VG ) للدلاله على انه يجمع عدة بارتشنات ، واخيرا سنقوم بعمل بارتشن من المساحة المتوفرة في ( VG ) الى بارتشن جديد يسمى ( LV ) وهو محور حديثنا.
تعريف الاختصارات
هذه هي الخطوات فنحن سنقوم بانشاء عدد 4 بارتشن من نوع 8e يمكننا باستخدام الاداة fdisk ومن لا يعرف استخدامها لا انصحه بتطبيق الدرس ، يكتفي بالقراءة معي ، لان انشاء بارتشن جديد يجب ان يكون شي بديهي لمدير النظام ، ويمكنك الحصول على شرح للاداة ممن هنا و هنا ايضا
بعد ذلك نقوم بجمع هذه البارتشنات تحت مجموعة واحدة VG ، ثم نستخرج من هذه المجموعة بارتشن جديد نستطيع اعادة تحجيمة ان احتجنا لذلك
ستكون العملية أسهل عندما نتذكر التسمية المختصرة كما كتبتها أنا ، لان جميع الاوامر التي سنستخدمها ستبدأ بنفس التسمية كما سنرى في هذا الموضوع
قبل كل شي ، يجب علينا اضافة المودل المطلوب للكيرنل بالنسبة لردهات ، هذا يعني اضافة مايلي في ملف /etc/modprobe.conf
ثم احفظ الملف
بعد انشاء البارتشنز المطلوبة وبعد اعادة التشغيل ، ناتج الامر fdisk -l يجب ان يحتوي على مايلي
انظر لنوع البارتشنات لدي من hda10 حتى hda13 هو Linux LVM
نجعل هذه البارتشنات ( PV ) كما ذكرنا ، بالامر pvcreate كمايلي
بعد ذلك نجمعها داخل مجموعة ( VG ) كما أسلفت سابقا ، بالامر vgcreate
لاحظ اسم المجموعة lvmhard كما كتبته انا ويمكنك كتابة أي اسم تريد
الان ننشئ البارتشن النهائي ( LV ) بالامر lvcreate على النحو التالي
لاحظ الامر بعد الخيار (L-) قمت بتحديد الحجم 1 قيقا
وبعد الخيار (n-) قمت بتحديد اسم البارتشن lvmpart ، والمجموعة التي ينتمي اليها lvmhard التي أنشأناها قبل قليل.
هذه هي الصيغه ، ويمكنك تحديد الحجم الذي تريد حسب مجموع الاحجام في البارتشنات الحقيقية ( PV ) لو كان كل واحد فيهم 1 قيقا هذا يعني يمكنك استخدام حتى 4 قيقا لان هذا هو حجم المجموعة بعد ضم البارتشنات لها
الان يصبح مكان البارتشن هنا
على حسب التمسية التي اعطيت ، ولا يحتاج هذا البارتشن الا لفورمات فقط ليصبح نظام الملفات فيه ext3 نكتب الامر التالي
بعد ذلك أعمل mount له كما تعلمنا من هذا الدرس
نتحقق من عمل البارتشن الجديد بالامر df
يعمل كما يجب مثل مانشوف في السطر الاخير
ولجعل ال mount دائم نضيف هذا السطر في ملف fstab
ثم نكتب الامر
هذا كل ماعلينا فعله لانشاء بارتشن LVM ، وسأشرح الان كيف يمكننا اعادة تحجيمة بالاوامر المناسبة
ويمكننا رؤية حالة البارتشن وحجمه ومعلومات اخرى من خلال الامر lvdisplay قم بكتابتة وانظر للخانه LV Size
كما ترى ان حجم البارتشن 1 قيقا
لزيادة حجم البارتشن lvmpart نفعل ذلك بالامر lvextend كمايلي
قمنا باضافة 1 قيقا للبارتشن واصبح حجمه 2 قيقا ، تحقق من ذلك باستخدام الامر lvdisplay مره اخرى
ولتصغير حجم البارتشن /dev/lvmhard/lvmpart نفعل ذلك بالامر lvreduce على النحو التالي
بحيث ان 1.5 قيقا هو الحجم الجديد بدلا من 2 قيقا ، يمكنك التحقق من ذلك باستخدام الامر lvdisplay مره ثالثه
طبعا عند زيادة الحجم او انقاصها يجب علينا تنفيذ الامر التالي ، حتى تصبح التغيرات مفعله بشكل نهائي بالامر ext2online
بعد ذلك تحقق من صحة الحجم ، بالامر df -h
لاضافة بارتشن جديد للمجموعة :
نقوم بعمل البارتشن باستخدام الاداة fdisk من نوع 8e ثم نجعله (PV) بالامر pvcreate ، ثم نضيفة للمجموعة بالامر vgextend.
تبدو العملية طويله ولكنها قصيره بالنظر الى اللون الاحمر فقط من مسلسل الاوامر التالية
كما ترى قمت بانشاء البارتشن وحددت نوعه فأعدت تشغيل الجهاز ثم طبقت عليه الامر pvcreate ثم الامر vgextend على اعتبار ان hda14 هو البارتشن الجديد للمجموعة lvmhard
لازالة البارتشن من المجموعة نستخدم الامر vgreduce كما يلي
وسلامتكم ،،،
بعد فهم السيناريو وقرائته مرتين على الاقل ، وطريقة تطبيق الاوامر ، يمكنك تذكر كل شي بسهولة بعد قراءة السطور التاليه
لانشاء ( PV ) استخدم الامر pvcreate
لانشاء ( VG ) استخدم الامر vgcreate
لانشاء ( LV ) استخدم الامر lvcreate
لمعرفة معلومات عن ( PV ) اكتب الامر pvdisplay
لمعرفة معلومات عن ( VG ) اكتب الامر vgdisplay
لمعرفة معلومات عن ( LV ) اكتب الامر lvdisplay
لاضافة بارتشن للمجموعه ، نجعله ( PV ) ثم نستخدم الامر vgextend
لازالة بارتشن من المجموعة ، نستخدم الامر vgreduce
لزيادة حجم البارتشن ( LV ) استخدم الامر lvextend
لتصغير حجم البارتشن ( LV ) استخدم الامر lvreduce
لاعادة التحجيم يمكنك استخدام الامر e2fsadm وطريقته اسهل ، لكنه لم يعمل معي لذا لم أكتب عنه واستخدمت الاوامر المذكورة في الموضوع
هذا المقال خالص لوجه الله تعالى فللجميع حق التعديل عليه بتحديثه ليكون افضل
كيف يمكننا زيادة حجم البارتشن عندما نحتاج لذلك ؟ بالعامية لما يصير البارتشن 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]#
كود:
[[email protected] init.d]# vgcreate lvmhard /dev/hda10 /dev/hda11 /dev/hda12 /dev/hda13 Volume group "lvmhard" successfully created [[email protected] init.d]#
الان ننشئ البارتشن النهائي ( LV ) بالامر lvcreate على النحو التالي
كود:
[[email protected] init.d]# lvcreate -L 1G -n lvmpart lvmhard Logical volume "lvmpart" created [[email protected] init.d]#
وبعد الخيار (n-) قمت بتحديد اسم البارتشن lvmpart ، والمجموعة التي ينتمي اليها lvmhard التي أنشأناها قبل قليل.
هذه هي الصيغه ، ويمكنك تحديد الحجم الذي تريد حسب مجموع الاحجام في البارتشنات الحقيقية ( PV ) لو كان كل واحد فيهم 1 قيقا هذا يعني يمكنك استخدام حتى 4 قيقا لان هذا هو حجم المجموعة بعد ضم البارتشنات لها
الان يصبح مكان البارتشن هنا
كود:
/dev/lvmhard/lvmpart
كود:
[[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]#
كود:
[[email protected] ~]# mount /dev/lvmhard/lvmpart /root/lvm [[email protected] ~]#
كود:
[[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
ويمكننا رؤية حالة البارتشن وحجمه ومعلومات اخرى من خلال الامر lvdisplay قم بكتابتة وانظر للخانه LV Size
كود:
[[email protected] ~]# lvdisplay --- Logical volume --- .... .... LV Size 1.00 GB .... [[email protected] ~]#
لزيادة حجم البارتشن lvmpart نفعل ذلك بالامر lvextend كمايلي
كود:
[[email protected] ~]# lvextend -L +1G /dev/lvmhard/lvmpart Extending logical volume lvmpart to 2.00 GB Logical volume lvmpart successfully resized
ولتصغير حجم البارتشن /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
كود:
[[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 -d /dev/lvmhard/lvmpart
لاضافة بارتشن جديد للمجموعة :
نقوم بعمل البارتشن باستخدام الاداة 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]ple ~]#
لازالة البارتشن من المجموعة نستخدم الامر 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 وطريقته اسهل ، لكنه لم يعمل معي لذا لم أكتب عنه واستخدمت الاوامر المذكورة في الموضوع
هذا المقال خالص لوجه الله تعالى فللجميع حق التعديل عليه بتحديثه ليكون افضل
تعليق