พบกับ Series ของ Microsoft Azure Deep Dive กันเป็นครั้งที่ 2 นะครับ ในวันเด็กแห่งชาตินะครับ 5555 เอ๊ะ เกี่ยวอะไรกันด้วยเนี่ยยยยย ก็ไม่รู้สินะ
บทความในตอนนี้ยังคงอยู่ในหัวข้อ Virtual Machine กันอยู่นะครับ ซึ่งหลังจากที่ในตอนที่แล้วได้กล่าวถึง Size ของ Azure Virtual Machine กันแต่ละ Series กันไปแล้ว ต่อไปจะได้มากล่าวถึงองค์ประกอบอื่นๆของ Azure Virtual Machine กันเพิ่มเติมดังนี้นะครับ
Virtual Hard Disks (ใน Azure จะเรียกว่า Azure Disks สำหรับในบทความนี้จะเรียกว่า Disk )
เป็นส่วนที่สำคัญอีกส่วนหนึ่งของ Virtual Machine ครับ มีหน้าที่ในการเก็บข้อมูลต่างๆ เปรียบเสมือนกับ Hard Disk ของเครื่องคอมพิวเตอร์ของเรานั่นเอง ซึ่งปกติแล้วเมื่อทำการสร้าง Azure Virtual Machine ขึ้นมาแล้วนั้น ตัวระบบ ของ Azure จะทำการสร้าง Azure Disk มาให้จำนวน 2 Disk คือ
- OS Disks เป็น Disk ที่ทำหน้าที่สำหรับการเก็บระบบปฏิบัติการโดยเฉพาะ เจ้าระบบปฏิบัติการที่ว่านี้ก็พวก Windows Server ต่างๆ รวมถึง Linux ด้วยเช่นกัน ซึ่ง OS Disk นี้โดยมากแล้วจะมีขนาด 127 GB และได้รับการกำหนดให้เป็น Drive C: สำหรับระบบปฏิบัติการ Windows ซึ่งทาง Microsoft ไม่แนะนำให้ทำการเก็บข้อมูลต่างๆ ของ Application ไว้ใน OS Disk
ซึ่งเจ้าตัว OS นี้จะถูก copy มาจากต้นฉบับที่มีการติดตั้งระบบปฏิบัติการต่างๆ ไว้เรียบร้อยแล้ เช่น Ubuntu, Microsoft Windows พร้อมกับซอฟต์แวร์ต่างๆ อย่าง SQL Server เป็นต้น ซึ่งเจ้าต้นฉบับเหล่านี้จะเรียกว่า “Image” นั่นเองครับ ซึ่งทาง Microsoft เตรียม Image ต่างๆ ไว้ให้เลือกใช้กันได้อย่างสะดวกสบาย หรือจะทำการสร้าง Image ขึ้นมาเองก็ได้นะครับ
- Temporary Disk เป็น Disk ชั่วคราว ซึ่งระบบของ Azure จะทำการจัดสรรพื้นที่ของ Disk บนเครื่องคอมพิวเตอร์เป็น Host ให้กับ Virtual Machine นั้นๆ ให้ ตัว Temporary Disk นี้จะใข้ในการประมวลผลชั่วคราวเท่านั้น ขนาดของ Temporary Disk จะแตกต่างกันไปตาม Size ของ Virtual Machine และจะด้รับการกำหนดให้เป็น Drive D: สำหรับระบบปฏิบัติการ Windows ข้อมูลใน Temporary Disk จะหายได้ หาก Virtual Machine มีการเปลี่ยนการทำงานไปยัง Host เครื่องอื่น ไม่แนะนำให้เก็บข้อมูลใน Disk นี้อีกเช่นกัน
อ้าว !!!! ไม่ให้เก็บข้อมูลซะงั้น แล้วจะไปเก็บที่ไหนดีหล่ะ ??? ก็ต้องไปเก็บใน Disk ประเภทที่ 3 ที่กำลังจะพูดถึงนี่แหละครับ
- Data Disk เป็น Disk ที่ผู้ใช้งานต้องมาทำการสร้างขึ้นเพื่อใช้เก็บข้อมูลของตนเอง ซึ่ง Virtual Machine แต่ละ Size จะมีจำนวนของ Data Disk แตกต่างกันออกไปสูงสุดถึง 64 Disk ใน Series D, G, และ L ซึ่งเจ้า Data Disk นี้ยังสามารถแบ่งออกได้เป็น 2 รูปแบบย่อยคือ Un-Managed และ Managed Disk ดังนี้
Un-Managed และ Managed Disk
- Un-Managed Disk (รูป A) การสร้าง Disk ในรูปแบบนี้นั้นจะต้องสร้าง Disk ให้อยู่ภายใต้การทำงานของ Storage Account และเป็น Storage Account ชนิด Blob Storage (รายละเอียดจะได้กล่าวถึงใน ตอนต่อๆ ไป) ซึ่งหากเรามี VM ที่มีการทำงานของ Application สำคัญขององค์กร (Business Critical Application) เราก็จะต้องมีการทำ Failover Cluster ให้อยู่ภายใต้ Availability Set (ซึ่งจะได้กล่าวถึงในตอนต่อๆ ไปอีกเช่นกัน)
ซึ่งปัญหาของเจ้า Un-Managed Disk ก็คือหาก VM ของเรามีการทำงานหนัก มันอาจจะมีความจำเป็นที่จะต้องทำการสร้าง Instance ใหม่ขึ้นมาประมวลผล เจ้า VM ใหม่นี้ก็จะเกาะกับการทำงานใน Storage Account อันเดิม ทำให้เกิดคอขวดขึ้นที่ Storage Account ได้ (ใน Azure กำหนด IOPS สูงสุดของ Storage Account อยู่ที่ 20,000 IOPS) ดังนั้นการทำงานแบบนี้จึงอาจเกิดปัญหาในระยะยาวได้
- Managed Disk (รูป B) จากรูปจะเห็นได้ในการทำงานของ Managed Disk นั้นจะมี Disk ขึ้นมาให้ใช้งานได้โดยตรง ไม่ขึ้นอยู่กับ Storage Account (อธิบายง่ายๆ ว่า 1 Disk ต่อ 1 Storage Account ซึ่ง Azure จะสร้าง Storage Account ให้โดยอัตโนมัติเป็น background ครับ) ดังนั้นจึงไม่ต้องกังวลกับข้อจำกัด 20,000 IOPS และนอกจากนี้ยังจะทำการสร้าง instance เพิ่มสามารถทำได้รวดเร็วยิ่งขึ้นอีกด้วย
ด้วยเหตุนี้เมื่อเราทำการสร้าง VM ใน Azure Portal จึงเสนอการทำงานในรูปแบบ Managed Disk เป็นค่า Default (ทำ OS Disk จะโดนสร้างให้เป็น Managed Disk ไปด้วย) ดังรูป
แต่หากไม่ต้องการใช้ Managed Disk ก็ให้เลือก Manged Disk เป็น No และเลือกชื่อของ Storage Account ดังรูป
นอกจากเรื่องของ Un-Managed และ Managed Disk แล้วนั้นมีอีกอย่างหนึ่งเกี่ยวกับเรื่องของ Disk ที่เราต้องรู้คือเรื่องของประสิทธิภาพ หรือ Performance ของ Disk นั่นเองครับ
Standard Tier & Premium Tier Storage Account
เนื่องจากว่า Virtual Hard Disk ที่เก็บใช้งานใน Microsoft Azure นั้นจะเป็น Virtual Hard Disk ในรูปแบบ .VHD และมีขนาด Fixed Size และ VHD เหล่านี้จะถูฏจัดเก็บไว้ใน Storage Account อีกทีหนึ่ง และเจ้า Storage Account ที่ว่านี้ก็จะต้องเป็นชนิด Page Blob ด้วยนะครับ (รายละเอียดของ Storage Account ประเภทต่างๆ จะกล่าวถึงอีกครั้งหนึ่่ง)
ทาง Microsoft ได้มีการออกแบบ Storage Account เหล่านี้ให้มี Availability สูงถึง 99.999% ทีเดียวครับ แต่สิ่งที่ต้องคำนึงในการใช้งาน Storage Account ก็คือเรื่องของประสิทธิภาพนั่นเอง ซึ่ง Microsoft Azure มีรูปแบบของ Storage Account ให้เลือกใช้ 2 ประเภท คือ
- Standard Storage เป็นรูปแบบ Storage Account ที่มีความประหยัด มีพื้นฐานการเก็บข้อมูลบน Hard Disk ที่เป็น Hard Disk จานแม่เหล็ก ซึ่งการเก็บข้อมูลในรูปแบบนี้ Azure จะมีการทำสำเนาข้อมูลไว้ให้โดยอัตโนมัติ (Storage Replication) ใน 4 รูปแบบคือ
- Locally-Redundant Storage (LRS) เป็นการทำสำเนา 3 สำเนาไว้ในศูนย์ข้อมูลของ Microsoft เพียงที่เดียว ก็คือศูนย์ข้อมูลที่ผู้ใช้เลือกให้ทำการสร้างนั่นเอง
- Zone-Redundant Storage (ZRS) เป็นการทำสำเนา 3 สำเนาไว้ในศูนย์ข้อมูลที่ผู้ใช้งาน และอีก 3 ชุดในศูนย์ข้อมูลอีกแห่งหนึ่งซึ่งอยู่ในภูมิภาคเดียวกันกับที่ผู้ใช้เลือก
- Geo-Redundant Storage (GRS) เป็นการทำสำเนา 3 สำเนาไว้ในศูนย์ข้อมูลที่ผู้ใช้งาน และอีก 3 ชุดในศูนย์ข้อมูลอีกแห่งหนึ่งซึ่งอยู่คนละภูมิภาคกับที่ผู้ใช้เลือก
- Read-Access Geo-Redundant Storage (RA-GRS) มีลักษณะคล้ายกับ GRS แต่อนุญาตให้ผู้ใช้งานสามารถทำการอ่านข้อมูล (อ่านอย่างเดียว) ที่อยู่ในศูนย์ข้อมูลที่ 2 ขึ้นมาใช้งานได้ด้วย
เดี๋ยวผมจะพาไปดูข้อจำกัดของ Standard Storage กันครับ
VM-Tier | Basic Tier VM | Standard Tier VM |
Max. Disk Size | 4095 GB | (Unmanaged Disk) 1-4095 GB (Managed Disk) S4: 32 GB S6: 64 GB S10: 128 GB S20: 512 GB S30: 1024 GB S40: 2048 GB S50: 4095 GB |
Max. 8K IOPS per Disk | 300 | 500 |
Max. Bandwidth per Disk | 60 MB/s | 60 MB/s |
TB per storage account | 500 TB | 500 TB |
Supported VM Series | รองรับทุก Series ของ Azure VM |
-
- Premium Storage เป็นรูปแบบ Storage Account มีพื้นฐานการเก็บข้อมูลบน Hard Disk ที่เป็น Solid State จึงทำให้ Premium Storage มีประสิทธิภาพสูง และมี Latency ต่ำ เหมาะสำหรับการใช้งานที่ต้องการความเร็วในการเข้าถึงข้อมูลของ Disk สูง เช่นงานฐานข้อมูลขนาดใหญ่ เป็นต้น สำหรับ Premium Storage นั้นจะสนับสนุนการทำสำเนาข้อมูลอัตโนมัติเพียงรูปแบบเดียวคือ LRS เท่านั้น
ทีนี้มาดูของ Premium Storage กันบ้างครับ ซึ่ง Premium แบ่งออกเป็นหลายขนาด้วยกันครับ ดังตาราง
Premium Disk Type | P4 | P6 | P10 | P20 | P30 | P40 | P50 |
Disk Size | 32 GB (Managed Disk Only) | 64 GB (Managed Disk Only) | 128 GB | 512 GB | 1024 GB | 2048 GB | 4095 GB |
IOPS Per Disks (IOPS) | 120 | 240 | 500 | 2300 | 5000 | 7500 | 7500 |
Throughput per disk (MB/s) | 25 | 50 | 100 | 150 | 200 | 250 | 250 |
Total Account Capacity | 35 TB | ||||||
Supported VM Series | เฉพาะ VM Series DS, DSv2, GS, Ls, และ FS |
คำถามต่อไปก็คือว่าถ้าเกิดว่า Application ของเราต้องการ IOPS หรือ Throughput ของ Disk สูงๆ เราจะทำอย่างไรได้บ้าง
คำตอบง่ายๆ ก็คือก็ใส่เข้าไป หลายๆ Disk ครับ เพราะ Azure VM แต่ละ Series นั้นจะมีกำหนดอยู่แล้วว่ารองรับ Data Disk จำนวนเท่าไร ก็ใส่ Disk เพิ่มเข้าไปก็จะช่วยเพิ่ม IOPS และ Throughput ได้ ซึ่งเมื่อเพิ่ม Disk ไปแล้วก็อาจจะต้องใช้คุณสมบัติของ Windows เช่น Storage Pool เข้ามาเสริมอีกต่อหนึ่งครับ
เอาหล่ะครับตอนนี้ก็พูดมาเกี่ยวกับ Disk และ Stroage มาพอสมควรแล้ว จบดีกว่าครับ ตอนหน้าจะได้พูดถึงเรื่องของ Virtual Network
แหล่งข้อมูลเพิ่มเติม