
פתרון בעיות אתחול מערכת ההפעלה בשרתים ללא KVM אינו משימה קלה. אנו יוצרים לעצמנו KVM-over-IP באמצעות תמונת שחזור ומכונה וירטואלית.
במקרה של בעיות במערכת ההפעלה , מנהל המערכת מוריד את תמונת השחזור ומבצע את העבודה הדרושה. שיטה זו עובדת מצוין כאשר הגורם לכשל ידוע, ותמונת השחזור ומערכת ההפעלה המותקנת בשרת הם מאותה משפחה. אם הגורם לכשל אינו ידוע עדיין, עליך לעקוב אחר התקדמות הטעינה של מערכת ההפעלה.
KVM מרחוק
ניתן לגשת למסוף השרת באמצעות כלים מובנים כגון IPMI או Intel® vPro™, או באמצעות התקנים חיצוניים הנקראים IP-KVM. ישנם מצבים בהם כל הטכנולוגיות הללו אינן זמינות. עם זאת, זה לא סוף הסיפור. אם ניתן לאתחל את השרת מרחוק לתוך תמונת שחזור המריצה מערכת הפעלה Windows, Linux, אז תוכל לארגן במהירות KVM-over-IP.
תמונת השחזור היא מערכת הפעלה מלאה הממוקמת ב-RAM. לפיכך, אנו יכולים להפעיל כל תוכנה, כולל מכונות וירטואליות (VMs). כלומר, ניתן להפעיל VM שבתוכו תפעל מערכת ההפעלה של השרת. ניתן לארגן גישה למסוף ה-VM, למשל, באמצעות VNC.
כדי להפעיל את מערכת ההפעלה של השרת בתוך מכונה וירטואלית, עליך לציין את דיסקי השרת כדיסקי מכונה וירטואלית. במערכות הפעלה מהמשפחה Linux דיסקים פיזיים מיוצגים כבלוקים מהצורה / dev / sdX, שאפשר לעבוד איתם כמו קבצים רגילים.
כמה היפרוויזורים, כגון QEMU ו-VirtualBox, מאפשרים לך לאחסן נתוני VM בצורה "גולמית", כלומר רק נתוני אחסון ללא מטא-נתונים של Hypervisor. לפיכך, ניתן להפעיל את ה-VM באמצעות הדיסקים הפיזיים של השרת.
שיטה זו דורשת משאבים כדי להפעיל את תמונת השחזור ואת ה-VM שבתוכה. עם זאת, אם יש לך ארבעה גיגה-בייט או יותר של זיכרון RAM, זו לא תהיה בעיה.
הכנת הסביבה
אתה יכול להשתמש בתוכנה קלת משקל ופשוטה כמכונה וירטואלית , שלרוב אינו חלק מתמונת השחזור ולכן יש להתקין אותו בנפרד. תמונת השחזור שאנו מציעים ללקוחות מבוססת עליה , המשתמש במנהל חבילות pacman.
הדבר הראשון שעליך לעשות הוא לוודא שתמונת השחזור משתמשת בתוכנה העדכנית ביותר. אתה יכול לבדוק ולעדכן את כל רכיבי מערכת ההפעלה עם הפקודה הבאה:
pacman -Suy
לאחר העדכון, עליך להתקין QEMU. פקודת ההתקנה דרך pacman תיראה כך:
pacman -S qemu
בואו נבדוק ש-qemu מותקן כהלכה:
root@sel-rescue ~ # qemu-system-x86_64 --version
QEMU emulator version 4.0.0
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
אם הכל כך, אז תמונת השחזור מוכנה לצאת לדרך.
הפעלת מכונה וירטואלית
ראשית, עליך להחליט על כמות המשאבים שהוקצו ל-VM ולברר את הנתיבים לדיסקים הפיזיים. במקרה שלנו, נקצה שתי ליבות ושני גיגה-בייט של זיכרון RAM למכונה הוירטואלית, והדיסקים ממוקמים לאורך הדרך / dev / sda и / dev / sdb. בואו נתחיל את ה-VM:
qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
קצת יותר פירוט על המשמעות של כל אחד מהפרמטרים:
- -מ 2048M - הקצאת 2 GB של זיכרון RAM ל-VM;
- -net nic -net user - הוספת חיבור פשוט לרשת באמצעות hypervisor באמצעות NAT (תרגום כתובות רשת);
- -אפשר-kvm - אפשר וירטואליזציה מלאה של KVM (Kernel Virtual Machine);
- מארח מעבד - אנו אומרים למעבד הוירטואלי לקבל את כל הפונקציונליות של מעבד השרת;
- -M PC - סוג ציוד PC;
- -smp2 - המעבד הוירטואלי חייב להיות כפול ליבה;
- -vga std - בחר כרטיס מסך רגיל שאינו תומך ברזולוציות מסך גדולות;
- -כונן file=/dev/sda,format=raw,index=0,media=disk
- file=/dev/sdX - נתיב להתקן הבלוק המייצג את דיסק השרת;
- פורמט=גולמי - נציין כי בקובץ שצוין כל הנתונים הם בצורה "גולמית", כלומר כמו בדיסק;
- אינדקס = 0 - מספר דיסק, חייב להגדיל באחד עבור כל דיסק עוקב;
- מדיה=דיסק - המכונה הוירטואלית חייבת לזהות את האחסון הזה כדיסק;
- -vnc :0, סיסמה - הפעל את שרת VNC כברירת מחדל ב-0.0.0.0:5900, השתמש בסיסמה כהרשאה;
- -תחנת צג - התקשורת בין המנהל ל-qemu תתרחש באמצעות זרמי קלט/פלט סטנדרטיים.
אם הכל תקין, צג ה-QEMU יתחיל:
QEMU 4.0.0 monitor - type 'help' for more information
(qemu)
ציינו שההרשאה מתבצעת באמצעות סיסמה, אך לא ציינו את הסיסמה עצמה. ניתן לעשות זאת על ידי שליחת פקודת change vnc password לצג QEMU. הערה חשובה: הסיסמה לא יכולה להיות יותר משמונה תווים.
(qemu) change vnc password
Password: ******
לאחר מכן, נוכל להתחבר לכל לקוח VNC, למשל, Remina, באמצעות כתובת ה-IP של השרת שלנו עם הסיסמה שציינו.


כעת אנו לא רק רואים שגיאות אפשריות בשלב הטעינה, אלא אנו יכולים גם להתמודד איתן.
כשתסיים, עליך לכבות את המכונה הוירטואלית. ניתן לעשות זאת בתוך מערכת ההפעלה על ידי שליחת אות לכיבוי, או על ידי מתן הפקודה מערכת_כיבוי בצג QEMU. זה יהיה שווה ערך ללחיצה על כפתור הכיבוי פעם אחת: מערכת ההפעלה בתוך המכונה הוירטואלית תכבה בצורה חלקה.
התקנת מערכת הפעלה
למכונה הוירטואלית יש גישה מלאה לדיסקי השרת ולכן ניתן להשתמש בה כדי להתקין את מערכת ההפעלה באופן ידני. המגבלה היחידה היא כמות ה-RAM: לא תמיד ניתן למקם את תמונת ה-ISO ב-RAM. בואו נקצה ארבעה גיגה-בייט של זיכרון RAM לאחסון התמונה / mnt:
mount -t tmpfs -o size=4G tmpfs /mnt
כמו כן, נוריד את תמונת ההתקנה של מערכת ההפעלה FreeBSD 12.0:
wget -P /mnt ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
עכשיו אתה יכול להפעיל את ה-VM:
qemu-system-x86_64
-m 2048M
-net nic -net user
-enable-kvm
-cpu host,nx
-M pc
-smp 2
-vga std
-drive file=/dev/sda,format=raw,index=0,media=disk
-drive file=/dev/sdb,format=raw,index=1,media=disk
-vnc :0,password
-monitor stdio
-cdrom /mnt/FreeBSD-12.0-RELEASE-amd64-bootonly.iso
-boot d
דגל -אתחול ד מתקין אתחול מכונן התקליטורים. אנו מתחברים ללקוח VNC ורואים את טוען האתחול FreeBSD.

מכיוון שהשגת כתובת באמצעות DHCP שימשה לגישה לאינטרנט, לאחר הגדרת התצורה ייתכן שיהיה צורך לאתחל לתוך המערכת החדשה שהותקנה ולתקן את הגדרות הרשת. במקרים מסוימים, ייתכן שיהיה צורך בהתקנת מנהלי התקנים של מתאמי רשת, מכיוון שכרטיס הרשת המותקן בשרת וזה המוצג ב-VM שונים.
מסקנה
שיטה זו של ארגון גישה מרחוק למסוף השרת צורכת חלק ממשאבי השרת, אולם היא אינה מטילה דרישות מיוחדות לחומרת השרת, ולכן ניתנת ליישום כמעט בכל תנאי. השימוש בפתרון זה מקל הרבה יותר על אבחון תקלות תוכנה ולשחזר את הפונקציונליות של שרת מרוחק.
מקור: www.habr.com
