[درس] Xen الجزء الثاني .. ما هي افضل تقسيمه ؟ اساسيات التنصيب ..

Mohamed Ali

[ VIP ]
24 مارس 2010
670
4
0
السلام عليكم ..

اتمنى ان يكون الجزء الأول كان مفيدا ..

بسم الله ..

كالعاده .. ساطيل عليكم

كما ذكرنا اننا بصدد شرح تنصيب Xen على نظام تشغيل Centos وسنقوم بتنصيبه مع لوحة HyperVm المجانيه ..
وهي قوية جدا وتفي بالغرض بالنسبة للغالبيه ..

قبل ان تطلب السيرفر حدد حجم الهارديسك الذي تريده ..

ايضا الهارديسك سيكون غير قابل للتوزيع مرة اخرى ..

فبمجرد اضافه VPS بحجم 100 جيجا .. يتم حجز هذه المساحه من ال volume group التي قمت بإنشائها مسبقا ..

ـــــــــــــــــــــــــــــــــ


التقسيمه المطلوبه والتي يفضلها الأغلب وهي كالتالي ..

/ وهو الجذر الذي يحتوي عليه النظام من 20 جيجا الى 30 جيجا .. والتي سيكون عليها ال template الخاصه بك وملفات ال log والإعدادات والنظام نفسه طبعا ..

/boot والتي ستحتوي على ال kernel وبرنامج ال boot وهو grub في حالتنا .. وحجمه يمكن ان يكون 100 ميجا فقط .. وللإحتياط نضيعه 200 او 300 ميجا .. ولا داعي لأكثر من ذلك .. ويمكن ان يكون بدون قسم خاص به ويكون ضمن ال / ..

ال swap وهي ما يعرف بال Virtual memory .. الذاكرة الوهميه .. فهي عبارة عن جزء من الهارديسك .. ويعمل كذاكرة ليساعد الرام في بعض العمليات التي تحتاجها او في حاله امتلاء الرام ..

لها مميزات وعيوب .. وليس هنا المجال لذكر هذا لاني اكتب مع ناس تعرف في علم الحاسوب .. وبالتالي لا داعي لشرح هذه الأمور ..

اما لو لم يكن هذا اختصاصك فعليك بالبحث عن كل مصطلح ..

ــــــــــــــــــــــــ

لحد هنا السيرفر حينزل عليه النظام ويكون جاهز .. لكن باقي الهارديسك سيكون غير مستخدم ..

وانا فضلت الا تذكر للداتا سنتر انك تريد قرص LVM لانهم دائما ما يقومو بعمل mount لذلك القرص وبالتالي تحتاج لحذف ال logical volume ومن ثم ازالته من ال /etc/fstab ..

ــــــــــــــــــــ


خلينا بس نركز الآن في موضوع ال LVM .. لانه موضوع مهم جدا ..

اولا كما قلت هو نظام ادارة للأقراص .. ويستخدم في السيرفرات العاديه او الأجهزة .. يعني ليس له علاقه بال Xen نفسه ..

ماذا نستفيد منه ؟

مثلا لديك قرصين على السيرفر كل واحد منهم 250 جيجا ..


يمكن استخدام كل قرص منفصل ..

لكن ماذا لو كانت حاجتك تقتضي انك تريد هارد 500 جيجا كامل لوجود ملفات كبيرة الحجم ..

هل نستبدل القرصين بقرص 500 ؟

بالطبع لا حاجة لذلك ..

اذا كنت تستخدم ال LVM فعليك اولا ان تضع القرص الأول والثاني وتحدد انهم LVM .. وبالتالي نظام الإدارة الي هو LVM

حيتم عليه التقسيم بعد هيك ... وحيتعامل مع القرصين كانهم هارد واحد 500 جيجا ..

ويمكن منه انشاء

/
/boot
swap

وكلها تكون على القرصين معا ..


يعني موضوع ال LVM يمكن ان يكون على كل السيرفر بالكامل ..


طولت عليكم مرة تانية بس كان لازم النقطه هذي توصل ..

ما هي مكونات نظام ال LVM

التفاصيل فيه كثيرة ..

لكننا سنذكر ان المهم لدينا هو volume group وتختصر ب vg وهو الأساس بعد ان تقوم بتغير القرص الى lvm

فان عليك انشاؤه .. وهو الذي سيحتوي على الأقراص الفرعيه ..

يعني هو الشجرة الأساسيه في الموضوع .. ومنه بيكون ال logical volume وتختصر ب lv ..


Volume Group1 >> Logical Volume1
Volume Group1 >> Logical Volume2
Volume Group1 >> Logical Volume3
Volume Group1 >> Logical Volume4

طبعا Logical Volume1 يمكن ان يكون هو البارتشين الي عليه النظام .. وممكن يكون البارتيشين الخاص بالباك اب .. او غيره ..


طيب تعال هنا يا حج ..

ايه علاقه ده كله في الي حنعلمه احنا ؟؟

انا احكيلك يا ورد ..

لما تعمل انشاء لكل VPS بنظام LVM

الي حيصير انو حيروح لل volume group ويلاقي حجمها مثلا 1 تيرا ..

حيروح يعمل بداخلها New Logical Volume يعني قرص جديد ..

واحد للنظام ككل ..

وواحد لل swap .. ويديله نظام ملفات وكل حاجة .. كانه جهاز عادي ..


يعني صار الإتصال بالهارديسك مع ال VPS مباشر ...


تمام .. حنعمل الحكاية دي كيف ؟

اول حاجة احنا قلنا التقسيمه الي فوق .. سواء كنت عليها او ما كنت عليها انتا حتشوف حسب السيرفر ..

لو كنت ماشي عليها حتروح تعمل قرص جديد وتخلي نوعه lvm وبعدها تعمل volume group وخلاص .. وما تعمل فيها اي حاجة ..

لو ما كنت عليها حيكون الموضوع حسب التقسيمه الي عندك .. ولو ما فهمت الي فوق وما بتعرف تستخدم ال fdisk ولا تعرف التقسيمه عندك كيف .. يبقى يفضل تشوف حد يفيدك بالموضوع ..

طيب كيف حنعمل ال volume group ؟

هذا مثال عملي على سيرفر بنفس التقسيمه الي فوق تقريبا
PHP:
[root@serv ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              30G  2.3G   26G   9% /
/dev/sda1             289M   22M  252M   8% /boot
tmpfs                 3.9G     0  3.9G   0% /dev/shm
شفنا الوضع الحالي ماشي كيف والأقسام الي معمول الها mount

حندخل على ال fdisk ونشوف الأقسام الموجوده على النظام كل الهاردات ونوع كل بارتشين

من خلال الأمر

fdisk -l



PHP:
[root@serv ~]# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000203804160 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        3954    31455270   83  Linux
/dev/sda3            3955        4476     4192965   82  Linux swap / Solaris
او ممكن ندخل على القرص المهتمين فيه

fdisk /dev/sda

ومنها حرف ال p يعني print


PHP:
[root@serv ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 121601.
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): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000203804160 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        3954    31455270   83  Linux
/dev/sda3            3955        4476     4192965   82  Linux swap / Solaris
عرضنا من خلال الخيار p الأقسام .. وطبعا زي ما شفتو انو خيار m بيعرض قائمه الخيارات المتاحه


الآن حنعمل قرص جديد على المساحه الغير مستخدمه .. وحنخليه من نوع LVM

حرف n لانشاء بارتشين جديد .. ونختار نوعه سواء

extended
او
primary

حسب القسم الأخير .. لو كان عبارة عن extended فلازم نعمل القرص بتاعنا من ضمنه ..

والا فيكون primary

وسيتضح ذلك فعلا خلال التجربه .. فجرب اولا انشاءه ك primary وستظهر لك رسالة توضح ان هذا لا يمكن .. فسوف ترجب الأخرى بعدها .. وستفهم ما قصدته .. وليس معنا هذا انو تخليها كلها تجريب

قرص جديد
PHP:
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)

Selected partition 4
First cylinder (4477-121601, default 4477): 
Using default value 4477
Last cylinder or +size or +sizeM or +sizeK (4477-121601, default 121601): 
Using default value 121601
اخترناه يكون primary وسيكون رقم 4 واخترنا الأرقام الإفتراضيه لل cylinder

نقوم بعرض الأقسام الجديده
PHP:
Command (m for help): p

Disk /dev/sda: 1000.2 GB, 1000203804160 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        3954    31455270   83  Linux
/dev/sda3            3955        4476     4192965   82  Linux swap / Solaris
/dev/sda4            4477      121601   940806562+  83  Linux
نغير نوع البارتشين .. حرف t ومن ثم نختار رقم البارتشين .. وبعدها النوع وهو 8e وهو الرمز ل LVM ..

ويمكن استعراض الأنواع المتوفرة من خلال الضغط على حرف L
PHP:
Command (m for help): t
Partition number (1-4): 4
Hex code (type L to list codes): 8e
Changed system type of partition 4 to 8e (Linux LVM)
انتهيني .. والآن حان وقت كتابه التغييرات ..


PHP:
Command (m for help): w
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.
[root@serv ~]#
انتهى ذلك .. فعلا .. يمكنك عمل اعاده تشغيل للنظام ..

يمكن ان يكون ما طبقناه في الأعلى على هارديسك منفصل .. يعني هارديسك ثاني تخليه كله يكون بارتشين واحد فقط وتخليه LVM .. وايضا بتضيفه لنفس ال Volume group مع البارتشين من القرص الأول ..


الآن يأتي وقت انشاء ال Volume Group على هذا ال Partition ..


فقط نفذ

PHP:
vgcreate xenvg /dev/sda4
vgcreate

وهو احد الاوامر الخاصه بالتحكم في ال volume group من انشاء وحذف وتوسيع وتصغير واعاده تسميه وعرض وووو

طبعا vgcreate للإنشاء ..

xenvg هو اسم ال volume group الي حنعملها .. ويميكن تسميتها بأي اسم vg0 , vgxen براحتكم ..

وبعدها ياتي مسار الباتشين الي هو اصلا من نوع LVM .. وهو في مثالنا /dev/sda4

ويمكن ان يكون ايضا ..

PHP:
/dev/sdb1
يعني حسب الحاله لديك ..

طبعا يمكن ايضا ان يكون الأمر كالتالي

PHP:
vgcreate xenvg /dev/sda4  /dev/sdb1
سينشىء ال volume group على الإثنين .. ويمكن اضافه الآخر لاحقا ايضا بإستخدام الامر vgextend


اهم نقطه في هذا الموضوع انتهت .. وهي مشكلة كبيرة للكثيرين عند بدايه استخدام هذا النظام ..

بشكل شخصي لم اكن استوعب لماذا لا اقوم بانشاء lv جديد ..

حيث كان السبب ان النظام يتطلب Volume group مع مساحه Unallocated

وهذا يعني ان لا تقوم بانشاء lv عليها ..



ماذا بعد ذلك ؟؟

فقط تنصيب اللوحة HyperVM وستقوم بنفسها بالكشف عن ال vg واضافتها الى الإعدادات لديها .. وستقوم بإنشاء اول VPS بشكل طبيعي ..

هل انت متاكد من هذا ؟؟

واجهت الكثير من المشاكل في عمليه التنصيب بعد هذه الخطوة ..

نعم صحيح .. وسأجيب على هذا في القسم الأخير بإذن الله من هذه السلسله .. وهي عن تنصيب اللوحة ونواه Xen وحل المشاكل التي ستواجهك خلال الإنشاء لل VPS ..


اعذروني على اي خطأ واي استفسار بإذن الله انا جاهز .. :smoke1:

بالتوفيق للجميع ..
سلام عليكم
نقلا للاخ حمدى جزاه الله خيرا