
הטקסט המלא של הדקות הראשונות בהרצאה «יצירת Snapshot בממשק גרפי» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בהרצאה הזו אני רוצה לספר לכם על סנפשוטים ובהרצאות הבאות נעשה אותם באופן אוטומטי דרך פאוורשל. הרעיון של סנפשוט זה לצלם את המצב של המכונה הווירטואלית, כולל הזיכרון שלה, כולל הדיסק שלה, כדי שנוכל לחזור אחורה בזמן לנקודת הזמן הזאת.
עושים את זה לפני איזושהי פעולה מסוכנת, איזושהי התקנה, איזשהו שינוי גדול. ומה שאני רוצה להראות לכם, שהמכונה הזאת הולכת לקבל צילום גם של הדיסק, גם של הארדיסק, אבל גם של הזיכרון שלה.
זאת אומרת שאם יש לי מסמך פתוח, נכתוב כאן Unsaved Document, לא שמרתי אותו, יש פה כוכבית, הוא לא שמור בארדיסק, אני בכוונה לא שומר אותו.
זאת אומרת שאם אני אסגור את זה, הוא שואל אותי האם לשמור או לא, ואני בכוונה לא שומר אותו. המסמך הזה ריק בפנים, וכל המידע שכתוב הוא רק בזיכרון הרם, ואם אני אכבל לו את החשמל, הכל הולך לאיבוד.
ומה שאני בא להראות לכם שהסנאפשוט מצלם גם את הארדיסק וגם וירצ'ואל משין ממורי, גם את הזיכרון הרם. זה אומר כל הדברים שפתוחים, כל התוכנות שפתוחות הולכות לעבור צילום, והצילום הזה זה למעשה קובץ שנשמר בארדיסק, ותמיד אפשר לחזור אחורה בזמן.
שימו לב, אני עושה את הצילום הזה. פה למטה אפשר לראות שהתבצע 15%, 20% מתוך משימת הצילום. מה שקורה מאחורי הקלעים, שהוא לוקח את זיכרון הר"מ של המכונה ברגע זה ושומר אותה בדיסק שלו.
ואז כשנצטרך לחזור אחורה בזמן הוא ישלוף מתוך הדיסק את הזיכרון וישחזר אותו. ולגבי הארדיסק, מרגע שעשיתי צילום, הדיסק המקורי, בלוק 17, 18, 19, כל הבלוקים נשארים כמו שהם, ואם אני אכתוב בלוק 17 חדש לתוך הארדיסק, הוא לא ייגע בבלוק המקורי, אלא ישמור את זה בקובץ נפרד, קובץ סנפשוט.
זה קובץ של כל השינויים שהתבצעו מאותו הרגע שעשיתי את הסנפשוט. במקרה של הדוגמה הזאת, השתנה בלוק מספר 17 ובלוק מספר 85. אז רק את השינויים הוא כותב בקובץ נפרד, כאשר הקובץ המקורי נשאר כמו שהוא.
אם צריך, הוא יקרא מכאן את הבלוקים שלא השתנו. זאת אומרת שהסנאפשוט גודל עם הזמן, בהתחלה הוא אפסי, וככל שכותבים יותר ויותר מידע אחרי הסנאפשוט, הקובץ של הסנאפשוט יגדל, ולכן לא מומלץ להחזיק סנאפשוט יותר מיום, יומיים, שלושה.
זאת אומרת שהחלטתי לעשות איזשהו שינוי גדול, איזשהו משהו מסוכן, עדכון, אני עושה סנאפשוט, מבצע את העדכון, אם משהו נדפק תוך כדי, אני חוזר אחורה בזמן לדיסק המקורי, שזה מאוד מאוד פשוט, כל מה שצריך זה רק למחוק את הקובץ של השינויים הזה.
פשוט מוחק את כל הקובץ של השינויים הירוק הזה, וחזרתי לקובץ המקורי. אבל אם הכל יתבצע כמו שצריך, אני מאחד את שתיהם.
מה זה אומר מאחד את שתיהם? את ה-17 החדש רושם במקום ה-17 המקורי. את ה-85 החדש מכניס במקום ה-85 המקורי, ונהיה לי עוד פעם קובץ אחד מעודכן. זאת אומרת שאחרי הסנפשוט אני יכול לאחד אותם ביחד, ולא תהיה לי יותר אפשרות לחזור בזמן.
או לחלופין אני יכול לגלגל אחורה ולחזור חזרה לקובץ המקורי על ידי מחיקה של כל השינויים. דרך אגב, אם התבצעו כמה שינויים בבלוק 17, כאן יישמר רק השינוי האחרון.
זאת אומרת, המערכת שומרת את הקובץ המקורי ואת השינוי האחרון בבלוק. אי אפשר יהיה לחזור לכל אחד מהגרסאות אחורה. אתה רוצה כמה סנפשוטים? תעשה כמה סנפשוטים. אבל כל סנפשוט זה נקודה אחת ויחידה בזמן, ולאפשר לחזור, יותר מזה אני יכול להגיד ל-VM עכשיו תעבוד עם הסנפשוט הזה ואחרי זה תעבוד עם הקובץ המקורי ואחרי זה תחזור לסנפשוט עוד פעם.
אני קובע האם ה-VM הזה יקרא את הבלוק 17 החדש או את הבלוק 17 הישן ואני יכול להגיד לו תקרא עכשיו חדש, תקרא עכשיו ישן, אני יכול לקפוץ בין הסנפשוטים.
טוב, בואו נראה את כל זה קורה בפועל, יש לנו סנפשוט מוכן, אנחנו רואים פה ב-take snapshot שיש לנו סנפשוט אחד מוכן, אנחנו באים ובטעות סוגרים את הקובץ בלי לשמור אותו.