כתבתי כאן על Application Virtualization, ועל Citrix Streaming Application (שהוא אחד מהמוצרים בתחום), ונראה לי שהגיע הזמן להציג את הפתרון שעושה וירטואליזציה כמו שצריך, בלי קליינטים ובלי הטמעות מסובכות.
Thinstall היא חברה פרטית שנוסדה ב 1999 ונמצאת בסן פרנסיסקו, והיא מוכרת בשוק כבר זמן לא קצר, תקופה מסוימת הם שיתפו פעולה עם Citrix והוציאו קליינט ICA על exe בודד שניתן להעביר ל usb disk ולהפעיל מכל מקום, בלי צורך בהתקנה או בהרשאות מיוחדות על המחשב.
לא מזמן יצא הגירסא האחרון לכלי ה Application Virtualization שלהם, למעלה ה Suite הוא רק כלי יצירת החבילה וסגירתה ל exe בודד, הרי מכיוון שלא צריך כלום מעבר לקובץ ההפעלה הסופי, אין שום צורך בשום כלי נוסף מעבר לזה, בנוסף לזה בגלל שזה רק exe, זה יכול לרוץ על תחנות NT ומעלה.
לשם הפעלת הקובץ, אין צורך שלמשתמש יהיו הרשאות אדמיניסטרטיביות על התחנה, האפליקציה רצה ב usermode מה שמוסיף עוד שכבה להגנה על מערכת ההפעלה, בנוסף על כך, האפליקציה יכולה לרוץ מכל מקום, הארד דיסק מקומי, שיתוף ברשת, כונן Flash, CD Rom, כונן USB או כל מדיה אחרת.
אז איך זה עובד, קצת לעומק, Thininstall פועל כ Virtual Operating System (או VOS) אשר בעצם מדמה מערכת הפעלה מארחת לשם הרצת האפליקציה, ה VOS מכיל בתוכו Virtual File System (או VFS) ו- Virtual Registy (או VREG) ואחראי על הצגת האפליקציה על מערכת ההפעלה המארחת, ככה שבעצם נוצר אפקט של SandBox קלאסי, כשלאפליקציה אין נגיעה במערכת ההפעלה והיא רצה במין מערכת הפעלה משל עצמה.
הדרך הטובה ביותר היא לבדוק ולראות בעיניים (אז שלא יעבדו אליכם...).
את ה packages הכי טוב ליצור במחשב וירטואלי שאפשר "לאפס" בקלות לאחר כל התקנה של חבילה.
אז מתקינים את ה Suite על המחשב שייעדנו לעניין ומפעילים את ה Setup Capture.
השלב הראשוני הוא לכידת המצב לפני ההתקנה, כדי להשוות את השינויים בין ה snapshot הראשוני לשני שייעשה לאחר ההתקנה (Thinstall עובדת אחרת משאר התוכנות ה"אחיות" שלה, ממש מתבצעת התקנה של האפליקציה על המחשב, והיא נשארת שם גם בתום תהליך הלכידה).
לאחר סיום ה snapshot הראשוני המערכת תיהיה מוכנה להתקנת האפליקציה.
אני בחרתי ליצור חבילה של Internet Explorer 7, אז זה הזמן להפעיל את ההתקנה, מחכים לסיום ההתקנה (במקרה הזה זה היה קרוח ב restart של מערכת ההפעלה) ומפעילים את ה snapshot השני (Post-Install Scan).
לאחר סיום כל התהליך תיווצר בתיקיה שנבחר החבילה הסופית של האפליקציה, ובכדי ליצור את ה exe הסופי, נותר לנו רק להריץ את build.bat (שלמעשה מקמפל את כל החבילה לא קובץ exe יחיד).
קובץ ה exe יווצר בתיקיית bin ומשם יהיה ניתן להעתיק אותו לכל מקום שנחפוץ.
הפעלתי את ה exe הסופי של IE7 שיצרתי מבעוד מועד על שרת windows 2003 עם IE6, וככה זה נראה:
שני הדפדפנים עובדים במקביל (כאמור ה IE7 וירטואלי) ללא בעיות, אפשר לגלוש בשניהם וההתנהגות של ה IE7 ממש חלקה ויפה.
אז כל מי שממש דחוף לו להפעיל IE7 על NT4\95\98 (מחק את המיותר), שייצור קשר, יש לי exe מוכן :) .
פרטים נוספים באתר Thinstall.
היום החלטתי להעביר את דומיין המעבדה שלי ל AD 2008, כרגע הוא דומיין AD 2003 R2.
נוסף על שדרוג הדומיין, קיבלתי החלטה להוסיף DC נוסף לדומיין ושה DC החדש יהיה בתוצרת ה Server core, ככה שהתצורה הסופית תיהיה דומיין 2008 עם שני DC's, אחד Windows Server 2008 core והשני Windows Server 2003 R02.
המעבר יתבצע בכמה שלבים מרכזיים:
שלב ראשון: התקנת מכונה וירטואלית בעלת Windows Server 2008 core
שלב שני: שדרוג הסכמה
שלב שלישי: התקנת Active Directory role על ה DC הוירטואלי
שלב ראשון: התקנת מכונה וירטואלית בעלת Windows Server 2008 core
הקמתי מכונה וירטואלית חדשה עם דיסק של 10gb ועם 400mb זכרון והרצתי התקנה של Windows Server 2008 core beta 3.
לא נראה לי שיש צורך להכנס לתהליך ההתקנה, כי לא נדרש שום דבר מהמשתמש פרט להכנסת ה serial number.
בסיום ההתקנה קיבלתי את המסך המפורסם כ"כ של ה core.
אז מה עושים עכשיו, אין אייקונים, אין management consoles, כלום... רק cmd.
מתחילים להפעיל את הגלגלים ולהתחיל לרשום פקודות.
אז השלבים הראשונים יהיו החלפת שם המחשב (כי כאמור, ההתקנה לא ביקשה לספק לה אחד כזה), הגדרת כתובת ה IP, אקטיבציה ל Windows והכנסת השרת לדומיין.
1. החלפת שם המחשב, נשתמש בפקודת netdom renamecomputer (הפקודה דורשת את שם המחשב הישן, אותו אפשר לגלות עם hostname).
הפקודה הולכת ככה: netdom renamecomputer oldmachinename /newname:newmachinename
החלפתי את שם השרת ל lab06.
2. הגדרת כתובת ה IP (ב default השרת מקבל את ה IP מה DHCP), פה נשתמש ב netsh, והפקודה שהרצתי היתה:
netsh int ipv4 set address "Local Area connection" static 10.1.1.45 255.255.255.0 192.168.90.1
אם רוצים לראות את ה connections יש להריץ את הפקודה netsh int ipv4 show interface
אחרי הגדרת ה IP, צריך להגדיר גם את ה DNS, ככה: netsh int ipv4 set dnsserver "Local Area Connection" static 10.1.1.10
נוודא שהגדרנו הכל כמו שצריך עם ipconfig ונוודא שיש לנו קשר לעולם החיצון ע"י שליחת פינגים.
3. אקטיבציה ל Windows, פה העניין פשוט וקל... מריצים את הפקודה slmgr.vbs -ato מה cmd, אם לא התקבלה שום הודעת שגיאה, אז הכל עבר חלק ואחרי כמה שניות נקבלת הודעת אישור.
4. הכנסת השרת לדומיין, netdom join lab06 /Domain:lab /userd:gfeldman /passwordd:password
5. ריסטרט, shutdown /r /t 0
6. מכיוון שזהוי סביבת מעבדה בחרתי לבטל את ה firewall שמאופשר בדיפולט, netsh firewall set opmode disable.
7. בכדי לאפשר התחברות ב RDP לשרת יש להריץ את הפקודה הבאה: script C:\Windows\System32\Scregedit.wsf /cs 0, אם ההתחברות תיעשה ממחשבי Vista ומעלה יש להחליף את ה /cs ב /ar.
שלב שני: שדרוג הסכמה
בכדי להכין את הסכמה והדומיין לשרתי Windows Server 2008 יש צורך לשדרג את ה schema והדומיין.
יש להעתיק את תיקיית sources\adprep לשרת ה operations master ולהריץ adprep /forestperp מתוך התיקיה החדשה.
לאחר מכן יש להריץ adprep /domainprep.
שלב שלישי: התקנת Active Directory role על ה DC הוירטואלי
אחרי ה forest וה domain מוכנים לקבלת Widnows server 2008 הגיע הזמן להפוך את השרת הוירטואלי החדש להיות DC.
מכיוון שזה Windows Server 2008 core אין תצוגה גרפית בהרצת dcpromo, ומכיוון שכך צריך להריץ הכל מה cmd.
במקרה שלי הפקודה היתה כדלהלן:
dcpromo /unattend /InstallDns:yes /confirmGC:yes /replicaOrNewDomain:replica /ReplicaDomainDNSName:lab.com databasePath:"c:\windows\ntds" /logPath:"c:\windows\ntdslogs" /sysvolpath:"c:\windows\sysvol"/
safeModeAdminPassword:#rert435$# /rebootOnCompletion:yes/
הפקודה מוסיפה DC נוסף לדומיין, מגדירה בו global catalog, מתקינה DNS ועושה restart בסיום.
יותר פרטים על איך להריץ dcpromo משורת הפקודה:
Unattended Installation Options
כל פעם שאני נפגש עם לקוחות אני שואל אותם האם הם הטמיעו Windows Vista בחלק מהמחשבים של הארגון, רוב התשובות שאני מקבל נעות בין בכלל לא ל-"כן, יש כמה מחשבים עם Vista במעבדה" (כמובן שיש כאלה שנמצאים בעיצומו של תהליך השידרוג לרוב התחנות בארגון), אלה שעונים "לא" בבטחון מלא "מתרצים" את זה בשלל הטענות המוכרות, עד שאין sp1 אין מצב, אין לנו זמן לנשום גם ככה, בעיות רישוי, צריך להשקיע במחשבים חזקים יותר, הכל עובד טוב, למה להחליף, ועוד ועוד.
בעיקרון כולם צודקים, לא כולם רצים ומטמיעים את המערכות החדשות ביותר,לא תמיד המערכות החדשות הן יציבות כמו הישנות (עד מתי אני אמשיך להתפלל שה standby של vista יעלה כמו שצריך?!?!), וכל שדרוג שכזה לוקח לא מעט משאבים וזמן שבדרך לא קיים אצל אנשי הסיסטם.
השאלה שלי על הטמעת ה Vista באה לבדוק בעיקר עד כמה הארגון "בעניין" של לשדרג למערכות החדשות שיוצאות כל הזמן, או בעצם עד כמה מחלקת ה IT מחפשת כל הזמן דברים חדשים שאולי ישפרו/יקלו את העבודה שלהם וגם יתנו למשתמשים שלהם כלים נוספים לעבודה יעילה יותר (כן, אני יודע שזה שארגון מסוים לא יטמיע את ה Vista לא אומר דווקא שהוא לא ישדרג ל Windows Server 2008 בבוא היום או בכלל לא אומר כלום על שום דבר).
אז בגלל כל אלה חשבתי שזה נכון לרכז קצת מידע והגיגים לגבי למה לעבור ל Windows Server 2008 אשר ישוחרר ב- 27.2.2008.
Product support lifecycle
לכל מוצר של מיקרוסופט יש תקופת תמיכה מוגדרת וברורה (הכוונה לתמיכה טלפונית וקבלת hotfixes), מינימום של 5 שנים מהשקת המוצר או שנתיים אחרי יצירת היורש (הארוך מביניהם), כלומר, אם באמת Windows Server 2008 ייצא בתאריך המיועד זה ישאיר שנתיים של תמיכה ל Windows Server 2003 (עד פברואר 2010), בעיקרון ניתן לקנות הרחבת אחריות ל 5 שנים נוספות (אם אני לא טועה בקשר למספר) אבל המחיר לא זול בכלל. (עוד לגבי Product support lifecycle פה)
מה שמשאיר לנו שנתיים למיגרציית השרתים ל 2008.
Terminal Services
כתבתי כבר לא מעט על החידושים של Windows Server 2008 Terminal Services, אז נראה לי שהדרך הטובה ביותר היא להפנות לפוסטים הרלוונטיים.
מה חדש ב Terminal Service של Windows 2008
Windows Server 2008 TS RemoteApp
שני feature-ים של ה Windows Server 2008
Windows Server 2008 TS Session Broker
Windows Server 2008 TS Gateway
Server Core
מצטט מהאתר של מיקרוסופט:
"אפשרות ההתקנה Server Core של מערכת ההפעלה Microsoft Windows Server 2008 היא אפשרות חדשה להתקנת Windows Server 2008. התקנת Server Core מספקת סביבה מינימליסטית להפעלת תפקידי שרת מסוימים, המצמצמת את דרישות התחזוקה והניהול
וכן את שטח התקיפה עבור תפקידי שרת אלה.
כדי לספק סביבה מינימליסטית זו, התקנת Server Core מתקינה רק את ערכת המשנה של הקבצים הבינאריים הנדרשים לתפקידי השרת הנתמכים. לדוגמה, מעטפת הסייר אינה מותקנת כחלק מהתקנת Server Core. במקום זאת, ממשק המשתמש המשמש כברירת מחדל עבור התקנת Server Core הוא שורת הפקודה. לאחר התקנת השרת וקביעת תצורתו, ניתן לנהל אותו באופן מקומי בשורת הפקודה, או מרחוק, באמצעות שולחן עבודה מרוחק. ניתן גם לנהל את השרת מרחוק באמצעות Microsoft Management Console (MMC) או באמצעות כלי שורת פקודה התומכים בשימוש מרחוק."
יותר פרטים פה: התקנת Server Core של Windows Server2008
Read only domain controllers
לפי דעתי אחת התוספות היותר מעניינות ל AD, למעשה מאפשר לקבוע DC's מסוימים שרק יקבלו עידכונים ולא ישלחו שום עידכון ל DC's אחרים ב domain.
למה זה טוב, לדוגמא בסניפים מרוחקים אשר אין במקום איש IT ולרוב ה DC זרוק באיזה פינה במשרד, אין יותר מדי אבטחה פיזית על השרת וכל מי שרוצה יכול לגשת ולהתחיל לשחק עם השרת, ועם אותו אחד גם עולה על סיסמת האדמין של השרת אז מפה הדרך קצרה מאוד עד לפגיעה ב AD כולו.
אפשר גם לקבוע איזה ערכים של ה AD יישמרו ב DC "המסורס", לדוגמא לשמור רק את הפרטים על שמות המשתמשים של הסניף המקומי וכו', מה שמאפשר לתת למשתמש מסוים בסניף הרשאות admin על השרת (לטיפול שותף במשתמשים או במדפסות משותפות לדוגמא) מבלי לדאוג שאותו משתמש ייפגע ב AD הארגוני.
שיפורים במערכת הקבצים
נוספו/שונו שתי יכולות, NTFS self healing ו- SMB2.
NTFS self healing- היום כדי לבדוק ולתקן שגיאות של מערכת הקבצים (למשל chkdsk.exe) היה צורך לעשות את זה ב offline, לדוגמא chkdsk של כונן ה system ניתן לבצע רק לפני עליית ה windows.
עם NTFS self healing ניתן לתקן את השגיאות ב online, אולי הקבצים אליהם מתבצעת העבודה לא יהיה זמינים למשך אותה התקופה, אבל עדיין, אין צורך ללכת ל offline.
SMB2- אלה למעשה ראשי התיבות של Server Message Block, ה SMB הוא פרוטוקול לעבודה עם מדפסות משותפות, תיקיות וקבצים משותפים ובכלל לתקשורת בין מחשבים והתקנים ברשת (מי שרוצה להעמיק, מוזמן לקרוא פה).
במיקרוסופט הבינו שנפח הקבצים והמידע שעובדים איתם היום הוא גדול פי כמה וכמה מגודל המידע שהיה לפני כמה שנים, אז בשביל שהשרתים יוכלו להתמודד עם גודל המידע הזה הוחלט להטמיע את ה SMB2 (שנכתב ע"י מיקרוסופט, ה SMB1 נכתב ע"י IBM ונמצא בשימוש במערכות נוספות פרט ל Windows), עפ"י מיקרוסופט, בבדיקות מעבדה פנימיות ה SMB2 שיפר את הביצועים פי 30 עד 40 מהביצועים שנרשמו ב Windows Server 2003.
Windows Hardware Error Architecture
עד עכשיו, במקרה של בעיות בהוספת חומרה חדשה לשרת, או בכלל כשלים בחומרת השרת (לא פעם זה נגמר בקריסת השרת) הינו צריך לחפש לוגים שונים ומשונים, לנסות להבין דאמפים ועוד ועוד, למעשה כל זה קרה בגלל שכל חומרה דיווחה על הכשל שלה אחרת.
כל זה הולך להיגמר, הוטמע פרוטוקול אחיד לדיווח על כשלים, ככה שעכשיו ה truobleshooting יהיה קצר וקל הרבה יותר.
עוד פרטים פה: Windows Hardware Error Architecture
Windows Server virtualization
יותר מוכר בשם הקוד שלו, Virdian, זוהי מערכת הוירטואליזציה הבאה של מיקרוסופט, שעל פי מיקרוסופט תיצא עד 180 יום לאחר יציאת ה Windows Server 2008.
דובר על כך שהיא תחיל יכולות כמו הוספה חמה של חומרה וירטואלית למכונה, מיגרציה חמה ממכונה פיסית לוירטואלית, עבודה עם מכונות x64 וירטואליות ועוד כמה וכמה יכולות.
עם הזמן כמה fetures ירדו והצוות המפתח הודה שהוספה חמה של חומרה ו live migration לא תתרחש בגירסא הראשונית וכל מכונה וירטואלית תתמוך עד 16 מעבדים (פיסיים או לוגיים), אבל עדיין האפשרות להריץ את המכונות הוירטואליות בלי ה overhead של מערכת ההפעלה עצמה (כי אפשר להריץ את ה server virtualization עם server core) ויכולות נוספות שכן יכללו בסוף נותנים תקווה לכל מערכת לא רעה בכלל.
אני בטח מפספס עוד דברים שיהיו ב Windows Server 2008 וחשובים לא פחות מאלה שציינתי פה (למשל PowerShell וניהול השרת ממסך מרכזי, עבודה עם roles), אבל אלה היו הנקודות שצצו לי בזמן הכתיבה ונסתפק בדברים האלה...