interhost

הבלוג
הכל על שרתים, תקשורת ולינוקס

ארכיון פוסטים מהחודש "יוני, 2011"

הוספת מערך רייד ללא ריסטארט ב-VMware ESXi

יום שישי, 3 ביוני, 2011

רציתי לעלות על הכתב שיטה לבניית מערך רייד חדש (כיום זה נקרא Virtual Disk) ונוסף בשרתי IBM ו Dell עם מערכת וירטואליזציה של VMware ESXi ללא ביצוע אתחול לשרת וללא השבתה של המערכת. הכלי מאפשר לנו להמשיך להריץ את השרת על המערך הקיים ולהוסיף דיסקים חדשים למערך חדש, כמובן בלי לכבות את השרת.

השיטה שאני שהולך להציג נבדקה בגרסאות 4.0 ו 4.1 של ESXi ועל דגמי השרתים ובקרי רייד הבאים:

  • Dell R610 – PERC H700
  • Dell R410 – PERC H700
  • Dell R710  – PERC H700
  • IBM X3550 M3 – MEGARAID
  • מדובר בבקרי רייד עם הצ'יפ של חברת LSI. הבקרים האלו נשלטים בעזרת כלי מיוחד (MegaCLI) המאפשר עבודה ישירה מול הבקר, בעזרתו ניתן להוציא נתונים מפורטים אודות הדיסקים, מצבם, מערכי הרייד וכו'.

    את הכלי אפשר להשיג עבור פלטפורמות שונות, הגרסה של הלינוקס מתאימה עבור ESXi.

    את ה-MegaCLI נוריד מהקישור הזה, תגללו למטה עד שתראו MegaCLI – VMWare
    (MegaRAID Release 4.5.2)

    נכון להיום הגרסה המוצעת אצלהם היא גרסת 8.00.28 והיא בהחלט מתאימה לנו.

    אפשר גם להוריד את הכלי, מוכן להרצה, ישירות מהאתר שלנו: MegaCLI (לחיצה ימנית, "שמור").

    בכדי להוריד את הכלי אל המערכת ה-ESXi יש להפעיל את ה-SSH, בגרסאות 4.1 אפשר לעשות זאת דרך ה-Vsphere Client עצמו, להלן השלבים לביצוע:

    1. הולכים ללשונית ה-"Configuration"  Vsphere Client configuration tab

    2. ברשימת Software יש ללחות על "Security Profile" vsphere-secprofile

    3. משם בצד ימין ל-"Properties" vsphere-properties

    4. יש לסמן את "Remote Tech Support (SSH)" וללחוץ על "Options…":

    vsphere-techsup

    5. וללחוץ בחלון שנפתח על "Start" vsphere-techsupstart

    טוב, אחרי שהשגנו את הדרוש נעבור כעת לשלב הבשרי של הרצת הכלי השימוש בו, לשם כך ראשית עליני להיכנס ב-SSH לשרת ולעבור למחיצת הרוט (root) כדי שנוריד לשם את ה-MegaCli ונריץ אותו. הדרך הפשוטה והנוחה ביותר היא להישתמש ב-wget:

    wget http://www.interhost.co.il/MegaCli

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

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

    לפני שנמשיך רציתי להגיד כמה מילים מקדימות על תצורת דיסקים חדשים של IBM ו-Dell,

    בשרתי IBM הדיסקים החדשים מוגדרים (firmware state) כ-"JBOD" (או גם Unconfigured-BAD). לפני שבונים דיסק וירטואלי (Virtual Disk) חדש אנחנו חייבים לשנות את ההגדרה שלהם ל- Unconfigured GOOD אחרת MegaCli יתלונן ולא יאפשר לנו להוסיף אותם למערך. כדי לעשות זאת עלינו לאתר תחילה את הדיסק החדש שלנו בעזרת הפקודה הפשוטה הזו:

    MegaCli -PDList -a0/.

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

    Enclosure Device ID: 64
    Slot Number: 3

    ה-Enclosure ID וה-Slot Number, נשתמש בערכים אלו בהמשך.

    כמו כן נוכל לראות את מצב הדיסקים – "Firmware state: Online, Spun Up"  יופיע ליד דיסקים שכבר יושבים במערך והם ב-Production – לא ניגע בדיסקים האלו.

    הדיסקים החדשים יופיעו לרוב בסוף הרשימה וה-state שלהם יהיה JBOD בשרתי IBM.

    בשרתי Dell יש לשים לב לערך "Foreign State" – לרוב דיסקים חדשים יהיו מוגדרים כ-Foreign.

    כדי להכין דיסק בשרת IBM למצב תמיכה ברייד  (Configured Good) יש להריץ את הפקודה הבאה אחרי שאיתרנו את ה- Enclosure ID וה-Slot Number שלו:

    ./MegaCli-PDMakeGood -PhysDrv[E:S] -a0
    

    ב-E נרשום את ה-Enclosure ID וב-S את ה-Slot Number של הדיסק.

    נחזור על הפקודה עבור יתר הדיסקים החדשים.

    בשרתי Dell ננקה את הגדרת ה-Foreign מהדיסקים:

    ./MegaCli -CfgForeign -Clear -a0
    

    הפקודה מנקה את כל הדיסקים שנמצאים במצב זר (Foreign) בשרת.

    זהו עכשיו אנחנו מוכנים לבנות Virtual Disk חדש. ניתן להקים Virtual Disk חדש בתצורות רייד שונות, נראה כיצד לבנות מערך רייד 1 (RAID MIRROR) חדש:

    ./MegaCli -CfgLdAdd -r1 [E:S, E:S] -a0

    בסוגריים המרובעות מקלידים את המזהים של הדיסקים, עבור הדיסק הראשון שיהיה חבר במערך נרשום את ה-Enclosure ID, נקודותיים ואת ה-Slot Number ואז פסיק וממשיכים עם המזהים של הדיסק השני שיהיה שותף במערך.
    הפרמטר האחסון a מציין את מספר המערך; לרוב זה מתייחס לבקרי רייד מתקדמים יותר שיש בהם  כמה מערכים שכל מערך מכיל מספר דיסקים וירטואליים (ב-99% מהמקרים לא נצתרך לשנות את ערך האפס כמו בדוגמא ונתיר אותו על כנו).

    הפעולה מסתיימת במהרה ויורדת שורה עם הודעה שאומרת שדיסק הוירטואלי מוכן לעבודה.
    מה שנותר לנו הוא לסגור את ה-SSH בחזרה דרך הגדרות האבטחה כפי שעשינו בתחילת המאמר.

    הדיסק הוירטואלי החדש מוכן לשימוש כעת, אפשר להוסיף אותו דרך ה-Storage שבמערכת ה-Vsphere.