התקנת openSUSE\SLES כ- Xen Guest

מסמך זה הוא בעיקרו תרגום של המסמך בקישור הבא.

אחרי מספר נסיונות של התקנת openSUSE\SLES בתור מערכת עצמאית בתוך VMWARE או qemu, והמרת מערכת הקבצים למערכת ש Xen ידע לקרוא, די התייאשתי מאורך התהליך וכמות השינויים שיש לבצע אחרי ההתקנה כדי לקבל מערכת עובדת ב -Xen.
אז שמתי לי למטרה למצוא דרך קלה יותר לבצע את התהליך.
לאחר מעט חשיבה, הגעתי להארה כי openSuSE 10.1 (ו- SLES 10) כבר יודעת להתנהג יפה כמערכת שמותקנת תחת XEN (כמו שפדורה 5\anaconda כבר יודעות), מכיוון שבגירסאות אלו הוכנס מודול לYaST- שמתקין openSuSE כמכונה וירטואלית (מה שאומר שה-initrd שלה כבר יודע לעבוד בסביבה של Xen)

אחרי קצת נסיונות וכמה חיפושים בגוגל, הגעתי למשהו עובד, שמצאתי שמתואר במסמך המקורי בדרך טובה וישירה יותר מאשר אני נקטתי.

היעד היה להתקין openSuSE על פדורה 5, כמו שציינתי, ללא התקנה והעתקה של מערכת ממקור אחר. מדריך זה הוא פירוט הפעולות שלי.
מדריך זה מניח ש- Xen כבר מותקן ועובד.
נשתמש בכלי rpm2cpio על מנת לחלץ את הקבצים הנחוצים, אם ההפצה שלכם אינה מבוססת RPM, תוכלו להשתמש בכלי rpm2targz. במדריך זה אדגים שימוש ב- rpm2cpio.

הכותרת של מדריך זה מדברת על openSuSE ו- SLES. התהליך הוא זהה כמעט לחלוטין, לכן אדגים את התהליך על openSuSE, ואיפה שצריך, אציין את השינויים הדרושים.

1. הורדה של הקבצים הנחוצים

ע”מ להתקין openSuSE כמערכת Xen Guest, נצטרך 2 קבצים עיקריים: קרנל מאופשר Xen וסקריפט שיאפשר לנו ליצור initrd של ההתקנה מאותו הקרנל. הקבצים הנחוצים זמינים בכתובות הבאות:

עבור SLES: את אותם הקבצים (בגרסאות קצת שונות) תמצאו בדיסק הראשון והאחרון בהתאמה.

2. (אופציונאלי) הורדת ההתקנה של openSuSE

לצורך הנסיונות שלי, הורדתי את ה-DVD של openSuSE, עשיתי לו mount לספריה מקומית, ויצאתי אותה דרך samba (כמובן שגם NFS\HTTP\FTP יעבדו מצויין, מה שנוח וקל יותר לכם הקוראים)

ניתן בודאי לבצע התקנה רשתית מלאה (דרך אתר מראה של openSuSE), אבל הדבר לא צלח בידי, בכמה נסיונות שונים (אני חייב לציין פה שגם לי זה א עבד. כ.ט.) הפרוצדורה עצמה מתחילה נכון, אבל נראה של-installer יש בעית משאבים, ייתכן וחסר RAM (אני ניסית 256M), ייתכן כי העלאת כמות ה-RAM תפתור את הבעיה.

3. המרת קבצי ה-RPM למשהו שאפשר לעבוד איתו

ישנן 2 גישות: rpm2targz ו- rpm2cpio. מכיוון שמדריך זה מוכוון להתקנה מעל פדורה, נתרכז ב rpm2cpio. התהליך הוא די דומה בעזרת rpm2targz, מה שחשוב, הוא חילוץ הקרנל וקבצי ההתקנה.

ספריית העבודה שלנו תהיה /tmp/suse-xen. לצורך הכנת ה-initrd, נצור ספריה ב /tmp/suse-xen אשר תכיל את הקבצים החשובים לצורך בניית ה-initrd.

mkdir -p /tmp/suse-xen/prep

בעזרת rpm2cpio, נחלץ את התוכן של 2 ה-RPM-ים שזה עתה הורדנו:

rpm2cpio install-initrd-1.0-19.i586.rpm | cpio -id
rpm2cpio kernel-xen-2.6.16.13-4.i586.rpm | cpio -id

כעת, אמורות להיות הספריות “boot”, “lib” ו- “usr” בספרייה הנוכחית (/tmp/suse-xen/prep). במידה ולא, חפשו הודעות שגיאה מתהליך ה rpm2cpio.
עברו לספריה usr/bin (בתוך /tmp/suse-xen/prep):

 cd usr/sbin

4. יצירת ה installer initrd עם הקרנל התואם

מכיוון שהקבצים נפרסו ב /tmp/suse-xen/prep, יש צורך לשנות את המשתנה “kernel_dir” בתוך הסקריפט שיוצר את ה-initrd, כדי שיפנה לספריית השורש הנכונה.
ערכו את הקובץ mkinstallinitrd, בשורה 48 שנו את הערך

my $kernel_dir = "";

ל-

my $kernel_dir = "/tmp/suse-xe/prep";

בשלב זה, נריץ את הסקריפט ע”מ שייצור לנו את ה-initrd:

 ./mkinstallinitrd --kernel=2.6.16.13-4-xen --libdir=/tmp/suse-xen/usr/lib/install-initrd suse10.1-install-initrd

תהליך זה אמור לקחת כדקה, כמובן בתלוי במהירות המחשב שלכם. בתום התהליך, אמור להיות לכם קובץ שנקרא suse10.1-install-initrd בספריה הנוכחית. העתיקו אותו ל /tmp/suse-xen.

בנוסף, נצטרך את הקרנל שחילצנו כעת ע”מ להתחיל את ההתקנה, העתיקו את הקובץ boot/vmlinuz-<VERSION>-xen לתוך /tmp/sus-xen.

5. תהליך ההתקנה

יצירת דיסק להתקנה

גם כאן, יש לנן 2 גישות אפשריות, הראשונה היא שיוך מחיצה פיזית או Logical Volume למכונה, או יצירת image file שישמש כדיסק לוגי שהמערכת תראה.

אני אינני משתמש ב LVM כרגע, לכן אדגים כיצד ליצור LV (Logical Volume) אבל אשתמש בדיסק וירטואלי לצורך המשך ההדגמה. ע”מ ליצור LV נריץ את הפקודה:

lvcreate -nsuse101-vm -L4G Xen_VG

פקודה זו תיצור LV בשם suse101-vm בגודל של 4G, ב- Volume Group שנקרא Xen_VG. כדי לצור קובץ שישמש כדיסק וירטואלי, נשתמש בפקודה:

dd if=/dev/zero of=/tmp/suse-xen/suse101-disk.img bs=1M count=1 seek=4000

פקודה זו תיצור קובץ ריק, שיוכל לגדול עד 4G, ושישמש לנו כדיסק וירטואלי.

יצירת קבצי הקונפיגורציה

בשלב זה אנו נצטרך 2 קבצי קונפיגורציה, אחד בשביל ההתקנה ואחד בשביל ריצה רגילה. הסיבה לכך היא שה-initrd (והאופציות שמועברות אליו) שמשמש להתקנה אינו יכול לשמש עבור ריצה. בשלב זה נצור את קובץ הקונפיגורציה לצורך התקנה, /tmp/suse-xen/suse101-inst.cfg

name = 'suse10.1-inst'
kernel = '/tmp/suse-xen/vmlinuz-2.6.16.13-4-xen'
ramdisk = '/tmp/suse-xen/suse10.1-install-initrd'
memory = '256'
vif = [ '' ]

root = '/dev/ram0'
extra = 'vnc=1 ramdisk_size=65000'

אם אתם משתמשים ב-LVM, השתמשו בשורה הבא

disk = '[phys:/data/Xen_VG/suse101-vm,hda1,w]'

או ב

disk = '[file:/tmp/suse-xen/suse101-disk.img,xvda,w]'

עבור דיסק לוגי.
הערך “vnc=1” שמועבר ל-initrd יגרום להתקנה להיות מורצת מעל VNC. ה-installer יבקש סיסמא עבור VNC כשתתחיל ההתקנה.

שמרו את הקונפיגורציה בקובץ /tmp/suse-xen/suse10.1-install ואתחלו את ה guest domain:

xm create -c suse10.1-install

תהליך ההתקנה

בשלב זה אמור להתחיל תהליך ההתקנה, בצעו את ההתקנה לפי השלבים, אם אתם צריכים עוד עזרה בהתקנה של openSuSE יש תמיד את מדריך ההתקנה

כמה נקודות חשובות בנוגע לתהליך ההתקנה:
  • בין שלב ההתקנה והקינפוג של המערכת, מתבצעת עליה מהמערכת המותקנת (מיד אחרי שלב ההתקנה של החבילות). לי הוא נכשל בכל פגם, וחוזר ל-Linuxrc. בשלב זה מה שעשיתי היה “Boot installed system” ומשם ההתקנה המשיכה כרגיל.
  • בגלל שאנחנו עוברים אח”כ לקובץ קונפיגורציה אחר, כתובת ה-MAC של הכרטיס תשתנה, מומלץ לאחר ההתקנה להריץ את YAST ולהריץ זיהוי מחדש של כרטיסי הרשת.
  • חשוב: בשביל שלב הריצה נצטרך את ה-initrd שיצרה ההתקנה בתוך ה Xen Guest. לצורך כך, יש להעתיק את /boot/initrd-<VERSION>-xen מתוך ה Xen Guest, לפני עליה מחדש של המערכת; שכן בעליה שניה, המערכת לא תעלה ללא ה-initrd, ולא תצליח לעבור את שלב טעינת הקרנל לזכרון. לכן, נעתיק בעזרת scp או כל כלי רשתי אחר את ה initrd למערכת המארחת (Domain 0). בתוך ה-SuSE Xen guest נריץ:
scp /boot/initrd-2.6.16.13-4-xen root@xen-dom0:/tmp/suse-xen

יצירת קובץ הקונפיגורציה לעליית המערכת

נצור את הקובץ /tmp/suse-xen/suse10.1-vm עם הערכים הבאים:

name = 'suse10.1-vm'
kernel = '/tmp/suse-xen/vmlinuz-2.6.16.13-4-xen'
ramdisk = '/tmp/suse-xen/initrd-vmlinuz-2.6.16.13-4-xen'
memory = '256'
vif = [ '' ]

root = '/dev/xvda2'

שוב, אם אתם משתמשים ב-LVM, השתמשו בשורה הבא

disk = '[phys:/data/Xen_VG/suse101-vm,hda1,w]'

או ב

disk = '[file:/tmp/suse-xen/suse101-disk.img,xvda,w]'

עבור דיסק לוגי.

ייתכן ותרצו להעתיק את קובץ הקונפיגורציה ל /etc/xen

העלאת ה Guest

xm create -c /tmp/suse-xen/suse10.1-vm
זהו, לא היה קשה במיחוד, נכון? תהנו מה openSusE\SLES שלכם.
מדריכים/התקנת_sles_opensuse_כ-_xen_guest.txt · שונה לאחרונה ב: 2008/06/19 18:34 (עריכה חיצונית)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0