วันศุกร์ที่ 27 เมษายน พ.ศ. 2555

ออฟติไมค์เน็คเวิรค์ทราฟฟิคด้วย BranchCache


สวัสดีครับท่านผู้อ่านที่รักทุกท่าน  สำหรับบทความนี้จะเป็นเรื่องราวส่วนหนึ่งที่มาจากประสบการณ์ของผมที่เคยให้ครับปรึกษาและจากการสอนครับ  การออฟติไมค์เน็คเวิรค์ทราฟฟิจะเกิดในองค์กรที่มีหลายที่หรือหลายโลเกชั่นครับ  และในแต่ละโลเกชั่นก็จะมีลิ๊งก์ในการเชื่อมต่อหรือที่เราเรียกกันว่า WAN Link เชื่อมกันในแต่ละที่ครับ  โดยลิ๊งก์ดังกล่าวจะถูกใช้ในการ Transfer ข้อมูลต่างๆ  ระหว่างสำนักงานใหญ่และสาขาต่างๆ เป็นต้นครับ  แต่สิ่งหนึ่งที่เราทราบกันอยู่แล้วคือ WAN Link ส่วนใหญ่ที่ใช้ในการเชื่อมต่อระหว่างแต่ละโลเกชั่นนั้น จะมีความเร็วค่อนข้างต่ำ  เพราะถ้าหากต้องการความเร็วที่มากขึ้น  องค์กรเหล่านั้นก็จะต้องเสียค่าใช้จ่ายมากขึ้นด้วย  ดังนั้นแต่ละองค์กรจึงต้องทำการพิจารณาและเลือกใช้ Speed หรือความเร็วของ WAN Link ตามความเหมาะสม  เพื่อช่วยประหยัดค่าใช้จ่ายให้กับองค์กรครับ   ถ้าผมจะย้อนกลับไปถึงข้อมูลที่ถูก Transfer หรือเคลื่อนย้ายไปมาในแต่ละโลเกชั่น ส่วนใหญ่จะเป็นพวกไฟล์ข้อมูลครับ  ไม่ว่าจะเป็น Word, Excel เป็นต้น  ดังนั้นหลายองค์กรส่วนใหญ่ก็จะพบประสบกับปัญหาเมื่อผู้ใช้งานต้องการเข้าถึงข้อมูลที่อยู่กันคนละที่  เช่น  ถ้าผมเป็นผู้ใช้งานที่อยู่ที่สาขาแต่ต้องการไฟล์ข้อมูลที่อยู่ในไฟล์เซิรฟเวอร์ซึ่งตั้งอยู่ที่สำนักงานใหญ่  ผมคงต้องใช้เวลาพอสมควรในการรอกระบวนการย้ายไฟล์ข้อมูลดังกล่าวผ่าน WAN Link ครับ  และถ้าหากมีคนอื่นต้องการไฟล์ข้อมูลที่อยู่ในไฟล์เซิรฟเวอร์ที่สำนักงานใหญ่เช่นเดียวกัน  เวลาที่ใช้ก็จะใช้เวลามากขึ้น  นอกจากนี้แล้วยังเป็นไปได้อีกครับว่าไฟล์ข้อมูลเดียวกันอาจจะมีผู้ใช้งานหลายคนจากหลายๆ สาขาต้องการ  ซึ่งก็จะทำให้มีการโอนย้ายข้อมูลขนาดใหญ่ผ่านลิ๊งค์ที่มีความเร็วต่ำ  และยังทำให้มีปัญหาเกี่ยวกับทราฟฟิคของ WAN Link นั้น ๆ ด้วย  ดังนั้นจากตัวอย่างที่ผมได้หยิบยกมานั้น  ผมอยากให้ท่านผู้อ่านสังเกตว่าในองค์กรที่มีหลายๆ โลเกชั่น และมีการโอนย้ายข้อมูลไปมาระหว่างสำนักงานใหญ่กับสาขา ปัญหาที่พบคือ  เวลาที่ใช้ในการเข้าถึงข้อมูลหรือการโอนย้ายข้อมูลต้องใช้เวลา  และไฟล์ข้อมูลเหล่านั้นอาจจะเป็นไฟล์ข้อมูลเดียวกันแต่มีผู้ใช้งานที่อยู่คนละที่ต้องการเข้าถึงหรือใช้งาน  ดังนั้นเราจะมาช่วยกันหาวิธีกันครับว่าจะมีวิธีการใดที่จะเข้ามาช่วยแก้ไขปัญหาดังกล่าวนี้  อยากให้ท่านผู้อ่านลองคิดครับ…..  ถ้ายังคิดไม่ออกผมขอนำเสนอฟีเจอร์หนึ่งที่มาพร้อมกับ Windows Server 2008 R2 ครับ  ฟีเจอร์ที่ว่านี้คือ “BranchCache” ครับ  และถ้าท่านผู้อ่านจำได้ในช่วงที่ Windows Server 2008 R2 ออกมาใหม่ๆ  ผมได้นำเสนอเรื่องราวและคอนเซปของฟีเจอร์ใหม่ ๆ ที่มาพร้อมกับ Windows  Server 2008 R2  และหนึ่งในนั้นก็คือ BranchCache ครับ  แต่สำหรับบทความนี้ผมจะนำเอา BranchCache เข้ามาช่วยจัดการปัญหาจากตัวอย่างที่ผมเกิ่รนเอาไว้ข้างต้นครับ

ทำความรู้จักกับ BranchCache
BranchCache เป็นฟีเจอร์ที่ใหม่ที่มีอยู่ใน Windows Server 2008 R2 และ Windows 7 (Windows 7 ต้องเป็น Enterprise หรือ Ultimate Edition เท่านั้น) ครับ  โดยฟีเจอร์ดังกล่าวนี้จะต้องอาศัยการทำงานร่วมกันระหว่าง Windows Server 2008 R2 และ Windows 7  ซึ่งเราเรียกว่า “Better Together” ครับ ซึ่งเป็นคำที่ทางไมโครซอฟท์ใช้เรียกฟีเจอร์
ใหม่ ๆ ที่ต้องอาศัยการทำงานร่วมกันของทั้งสองระบบปฏิบัติการตัวใหม่  สำหรับ BranchCache นั้นจะเป็นฟีเจอร์ที่เข้าช่วยลดทราฟฟิคที่เกิดขึ้นใน WAN Link จากการที่มีการเข้าถึงหรือโอนย้ายไฟล์ข้อมูลระหว่างโลเกชั่นต่างๆ  ตามตัวอย่างที่ผมได้บอกไว้ก่อนหน้านี้ครับ  โดยเจ้า BranchCache จะทำการแคส (Cache) หรือทำสำเนาข้อมูลเก็บเอาไว้ที่สาขาหรือที่โลเกชั่นั้น ๆ ครับ  และถ้าหากในครั้งต่อไปมีผู้ใช้งานคนอื่นๆ ต้องการใช้งานไฟล์ข้อมูลดังกล่าวอีกก็สามารถเอาข้อมูลดังกล่าวจาก Cache ได้เลยครับ  ไม่ต้องไปเอาจากไฟล์เซิรฟเวอร์ที่ตั้งอยู่ที่สำนักงานใหญ่อีกต่อไปครับ  ดังนั้นจึงทำให้ลดทราฟฟิคของ WAN Link ลงและทำให้เวลาที่ใช้ในการเข้าถึงข้อมูลก็น้อยลงตามไปด้วยครับ  ต่อไปผมจะอธิบายถึงโหมดการทำงานของ BranchCahce ครับว่ามีอยู่ด้วยกัน 2 โหมด คือ

1. Distributed Cache
2. Hosted Cache

เรามาดูแบบแรกกันก่อนครับว่าเป็นอย่างไร  สำหรับโหมด Distributed Cache นั้น เครื่องของผู้ใช้งาน  (Windows 7) จะทำการ Cache หรือก๊อปปี้ไฟล์ที่อยู่ในไฟล์เซิรฟเวอร์ซึ่งตั้งอยู่ที่สำนักงานใหญ่  จากนั้นถ้ามีผู้ใช้คนอื่นๆ ที่อยู่ในสาขาต้องการไฟล์ดังกล่าว ก็สามารถไปเอาไฟล์จากเครื่องที่มีการ Cache ข้อมูลได้โดยตรงไม่ต้องไปเอาจากไฟล์เซิรฟเวอร์อีกต่อไปครับ  เพราะฉะนั้นข้อดีของโหมดนี้คือไม่ต้องมีเซิรฟเวอร์ที่เก็บข้อมูลที่ได้จากการ Cache ต่างหาก  แต่โหมดนี้เหมาะสำหรับโลเกชั่นที่มีเครื่องไม่เยอะมาก  สำหรับโหมดต่อมาจะเป็นโหมด Hosted Cache  โดยโหมดนี้ต้องการเซิรฟเวอร์ที่เป็น Windows Server 2008 R2 ติดตั้งอยู่ที่สาขาหรือที่โลเกชั่นนั้นๆ  และทำหน้าที่เป็น Host  เพื่อทำการเก็บข้อมูลที่ได้จากการ Cache   เพราะฉะนั้นเครื่องของผู้ใช้งาน (Windows  7) ก็สามารถขอและทำการดาวน์โหลดข้อมูลได้จากเซิรฟเวอร์ดังกล่าวได้เลย  และนอกจากนี้ยังสามารถใช้เซิรฟเวอร์ดังกล่าวนี้ทำการดึงข้อมูลที่ต้องการและไม่ได้มีการ Cache ได้อีกด้วย
นอกจากนี้แล้ว BranchCache สนับสนุนแอพพิเคชั่นที่ใช้โปรโตคอลดังต่อไปนี้
- Hypertext Transfer Protocol (HTTP) และ Hypertext Transfer Protocol Secure (HTTPS) เป็นโปรโตคอลสำหรับ Web Browser และ Web Server
- Server Message Block (SMB) เป็นโปรโตคอลสำหรับการใช้งานของ File Sharing ใน Windows เน็ทเวิรค์
- Background Intelligent Transfer Service (BITS) เป็นโปรโตคอลที่ใช้ในการเคลื่อนย้ายไฟล์ (Transfer Files) แบบ Asynchronously ระหว่างไคลเอ็นท์และเซิรฟเวอร์
หลังจากที่เราทราบถึงคอนเซปและรายละเอียดต่างๆ ของ BranchCache แล้ว  ผมจะอนุญาตนำเสนอขั้นตอนการติดตั้งใช้งาน  BranchCache โดยผมจะยกตัวอย่างขึ้นมาประกอบในการติดตั้งครับ  โดยสมมติว่าผมมีโลเกชั่นอยู่ 2 ที่ครับ คือเป็นสำนักงานใหญ่กับสาขาแล้วกันครับ  โดยที่สำนักงานใหญ่ผมจะมี Web Server ทำงานอยู่ และที่สาขาจะมีแต่เครื่องไคลเอ็นท์ซึ่งเป็น Windows 7 ครับ และผู้ใช้งานที่สาขาต้องการใช้งานข้อมูลที่อยู่ใน Web Server ดังรูปด้านล่างครับ


และตอนนี้ผมได้สร้าง VM (Virtual Machine) ขึ้น  2 ตัวครับ  โดยตัวแรกจะทำหน้าที่เป็น Web Server ซึ่งตั้งอยู่ที่สำนักงานใหญ่ และ VM อีกตัวหนึ่งเป็น Windows 7 Ultimate Edition ที่อยู่ที่สาขาดังรูปด้านบนครับ  โอเคครับเมื่อเข้าใจถึงไดอะแกรมจากตัวอย่างของผมแล้ว  ผมจะเริ่มทำการติดตั้ง BranchCache ในโหมดที่เรียกว่า Distributed Cache เพราะที่สาขาของผมมีเครื่องไคลเอ็นท์ไม่กี่เครื่องครับ  จากนั้นผมจะเริ่มทำการติดตั้ง BranchCache ที่ Web Server ที่อยู่ที่สำนักงานใหญ่ครับ  โดยมีขั้นตอนดังต่อไปนี้ครับ
- ให้ท่านผู้อ่านไปที่ Start/Administrative Tools แล้วคลิ๊ก Server Manager ดังรูป

- จากนั้นให้คลิ๊กขวาที่ Features แล้วคลิ๊ก Add Features ดังรูป

- จากนั้นให้เลือก BranchCache แล้วคลิ๊ก Next ดังรูป

- จากนั้นให้คลิ๊ก Install ดังรูป
จากนั้นให้รอสักครู่ครับ และเมื่อติดตั้ง BranchCache  เสร็จเรียบร้อยแล้ว ท่านผู้อ่านจะเห็นหน้าจอ ดังรูปด้านล่าง  ให้คลิ๊กปุ่ม Close ครับ

ในขั้นตอนต่อไปจะเป็นการเปิดใช้งานและเอ็นเอเบิ้ล BranchCache ที่ฝั่งของเครื่องของผู้ใช้งาน โดยเราสามารถทำได้  โดยให้ท่านผู้อ่านทำการเรียก Computer Management ขึ้นมาดังรูปครับ
จากนั้นให้คลิ๊กที่ Services and Applications แล้วคลิ๊กที่ Services  จากนั้นให้ท่านผู้อ่านมองหา BranchCache เซอร์วิส แล้วคลิ๊กขวาเลือก Properties ดังรูป
จากนั้นในส่วนของ Startup Type ในแท็ป General ให้เปลี่ยนเป็น  Automatic ดังรูปด้านล่างครับ
จากนั้นให้คลิ๊ก OK ครับ  จากนั้นในขั้นตอนต่อไปจะเป็นการเอ็นเอเบิ้ลโหมดในการทำงานของ BranchCache ว่าจะให้ทำงานในโหมดใด  โดยให้ผู้อ่านทำการพิมพ์คำสั่งดังต่อไปนี้  netsh branchcache set service mode=DISTRIBUTED ดังรูป
จากนั้นให้ท่านผู้อ่านพิมพ์คำสั่งดังต่อไปนี้ เพื่อทำการตรวจสอบว่า เราได้มีการเอ็นเอเบิ้ลโหมดการทำงานของ BranchCache ได้ถูกต้องครับ  netsh branchcache show status ดังรูป
และจากคำสั่งข้างต้น  นอกเหนือจากการที่ไปเอ็นเอเบิ้ลโหมดการทำงานแล้ว  ยังทำการกำหนดค่าใน Windows Firewall ให้อนุญาตสำหรับ BranchCache ด้วยครับ  ดังรูป
มาถึงตรงนี้ก็เป็นอันเสร็จสิ้นกระบวนการในการติดตั้ง BranchCache ทั้งฝั่งของ Windows Server 2008 R2 และ Windows 7 ครับ  จากตัวอย่างที่ผมกำหนดเอาไว้ข้างต้น  ดังนั้นเมื่อไคลเอ็นท์ดังกล่าวนี้มีการเข้าถึงข้อมูลหรือใช้งานข้อมูลใน Web Server ที่อยู่ที่สำนักงานใหญ่  BranchCache ที่ติดตั้งอยู่ 2 ฝั่งก็จะเริ่มทำการงานครับ โดยเฉพาะในฝั่งของไคลเอ็นท์ก็จะทำการ Cache ข้อมูลเอาไว้  และในโอกาสต่อไปถ้ามีเครื่องไคลเอ็นท์เครื่องอื่นๆ  ที่อยู่ที่สาขาต้องการข้อมูลแบบเดียวกัน  เครี่องดังกล่าวก็จะไปติดต่อกับไคลเอ็นท์เครื่องที่มีการ Cache ข้อมูลเก็บไว้ครับ  เพราะฉะนั้นก็จะทำให้การใช้งานข้อมูลสามารถทำได้อย่างรวดเร็ว  ไม่ต้องไปเอาข้อมูลจากเซิรฟเวอร์ที่อยู่สำนักงานใหญ่ครับ  และจากตัวอย่างข้างต้นเป็นเพียงแค่การติดตั้งแบบง่ายมีเครื่องไม่มาก  แต่ในองค์กรที่มีจำนวนเครื่องเยอะ ๆ  เราสามารถกำหนดค่าของ BranchCache ผ่านทาง Group Policy ได้ครับ  ไม่ต้องมาทำทีละเครื่องเหมือนกับที่ผมทำให้ดูข้างต้นครับ  เพราะฉะนั้นทำให้ประหยัดเวลาและสะดวกรวดเร็วมากขึ้นครับ  โดยให้ท่านผู้อ่านสามารถทำได้โดยเรียกทูลที่ชื่อว่า  Group Policy Management คอนโซลดังรูปครับ
จากนั้นให้ไปที่ Group Policy Objects แล้วคลิ๊กขวาเลือก New ดังรูป
จากนั้นให้ตั้งชื่อ GPO ครับ  ผมขอตั้งชื่อว่า BranchCacheGPO ดังรูปครับ  จากนั้นให้กดปุ่ม OK
จากนั้นให้คลิ๊กขวาที่ BranchCacheGPO ที่สร้างขึ้นมาเมื่อสักครู่นี้ครับ แล้วเลือก Edit… ครับ  จากนั้นให้ท่านผู้อ่านไปที่  Computer Configuration/Policies/Administrative Template: Policy definitions (ADMX files) retrieved from the local machine. ดังรูปด้านล่างครับ
จากนั้นให้ท่านผู้อ่านกำหนดค่าต่างๆ  เช่น BranchCache โหมด และอื่นๆ ครับ สำหรับรายละเอียดดังกล่าวนี้ท่านผู้อ่านสามารถไปดูเพิ่มเติมได้ที่ลิ๊งก์นี้ครับผม  http://technet.microsoft.com/en-us/library/dd637820(WS.10).aspx
และทั้งหมดนี้เป็นเรื่องราวของ BranchCache ครับ  ซึ่งผมหวังเป็นอย่างยิ่งว่าฟีเจอร์ดังกล่าวนี้สามารถช่วยท่านผู้อ่านของผมที่กำลังประสบกับปัญหาที่เหมือนกับตัวอย่างของผมครับ 

เจาะลึกเกี่ยวกับ Windows 7 Deployment (ตอน 4)

เอาล่ะครับได้เวลาได้เราจะมาว่ากันต่อสำหรับการเริ่มกระบวนการทำอิมเมจที่ผมค้างท่านผู้อ่านไว้ในตอนที่แล้ว  โดยหลังจากที่เราได้ทำการคลิ๊ก Begin เพื่อเริ่มทำการ Capture อิมเมจ    ซึ่งจะมีการรัน Sysprep เพื่อทำการเคลียร์ค่าต่างๆ  ออกไปเพื่อเตรียมพร้อมสำหรับการสร้างอิมเมจ  ดังรูปด้านล่าง ซึ่งจะใช้เวลาพอสมควร  จากนั้นเครื่องต้นแบบจะถูกรีสตารท์

หลังจากรีสตารท์แล้ว  จากนั้นจะกลับเข้าสู่กระบวนการสร้างอิมเมจ ดังรูปด้านล่าง
กระบวนได้การสร้างหรือ Capture จะใช้เวลามากหรือน้อย  ขึ้นอยู่กับเครื่องต้นแบบที่เราได้เตรียมไว้ว่ามีข้อมูลมากหรือน้อยเพียงใดครับ  หลังจากกระบวนการ Capture เสร็จเรียบร้อยแล้ว  ท่านผู้อ่านจะเห็นหน้าจอ  ดังรูปด้านล่างครับ
จากนั้นให้คลิ๊ก Finish ครับ และตามด้วยการปิดเครื่องต้นแบบ เพราะมาถึงจุดนี้เราไม่จำเป็นต้องใช้เครื่องต้นแบบอีกต่อไปแล้วครับ  รูปด้านล่างจะเป็นรูปที่แสดงถึงอิมเมจที่ได้จากการ Capture เครื่องต้นแบบครับ ซึ่งจะถูกเก็บไว้ในโฟลเดอร์ Captures   ซึ่งอยู่ภายใต้โฟลเดอร์ DeploymentShare
แต่ถ้าท่านผู้อ่านไปดูที่ DeploymentWorkBench ในส่วนของ  Operating Systems จะไม่พบอิมเมจนี้ จนกว่าเราจะทำการ Import Operating System   ดังรูป
จากนั้นจะเข้าสู่กระบวนการของการ Import    โดยในส่วนของ OS Type ให้เลือกออฟชั่นตามรูปด้านล่าง  แล้วคลิ๊ก Next
ในส่วนของ Image ให้ทำการ Browse ไปที่โฟลเดอร์ Captures  ดังรูป
ในส่วนของ Setup และ Destination ให้คลิ๊ก Next  ไปเลยครับ  จากนั้นจะเริ่มกระบวนการของการ Import ดังรูป
เมื่อเสร็จทำการ Import เสร็จแล้ว ให้คลิ๊ก Finish ตามรูปด้านล่างครับ
จากนั้นเราจะเห็นอิมเมจที่เราได้ทำการ Capture เข้ามาอยู่ใน Operating Systems ของ DeploymentWorkbench คอนโซล
และสุดท้ายอย่าลืมทำการอัพเดท MDT Deployment Share นะครับ และทั้งหมดนี้คือขั้นตอนทั้งหมดของการ Capture อิมเมจจากเครื่องต้นแบบครับ  สำหรับในตอนต่อไซึ่งจะเป็นตอนจบของการทำ Windows 7 Deployment นั่นคือ  การ Deploy อิมเมจที่ได้มาจากการ Capture ไปยังเครื่องปลายทางที่เราต้องการ Deploy ครับ  อย่าลืมติดตามนะครับผม .....