Ảo hóa máy chủ
Khi bạn nghĩ về một máy chủ, bạn nghĩ đến điều gì? Có phải là một máy tính với CPU nhanh? Nó có nhiều RAM không? Nó có được bắt vít vào các tủ hoặc giá đỡ (racks) trong một trung tâm dữ liệu?
Khi bạn nghĩ về một máy chủ, có khi nào bạn thôi không nghĩ về các phần cứng mà suy nghĩ về hệ điều hành của nó, đang chạy ở đâu đó và được gọi là các máy ảo (Virtual Machine – VM)?
Các câu trả lời đều là chính xác tùy theo quan điểm, nhưng trong phạm vi chương trình CCNA, chúng ta sẽ bỏ qua những chi tiết đó. Với mức CCNA, một máy chủ là nơi để chạy các ứng dụng, những người dùng kết nối với các ứng dụng thông qua mạng. Loạt vài viết này sẽ biểu thị máy chủ với biểu tượng nhìn giống một máy tính desktop (Cisco dùng nó để biểu thị cho server). Chủ đề tiếp theo sẽ giúp ta khám phá một vài quan điểm về server và giúp ta chuẩn bị cho phần thảo luận về điện toán đám mây.
Thiết bị máy chủ Cisco
Hãy suy nghĩ về các yếu tố của một máy chủ - đó là hình dạng và kích thước vật lý của nó. Nếu bạn tự lắp ráp một máy chủ cho riêng mình, nó sẽ trông như thế nào? Lớn như thế nào, rộng bao nhiêu, cao bao nhiêu, v.v. Thậm chí nếu bạn chưa bao giờ thấy một thiết bị có các đặc trưng của một máy chủ, hãy xem xét các tính năng đặc trưng của nó:
Ví dụ, hình bên dưới cho chúng ta thấy một thiết bị máy chủ của Cisco. Trong khi bạn nghĩ về Cisco như một công ty mạng và viễn thông thì khoảng năm 2010, Cisco đã ra mắt các sản phẩm cho thị trường máy chủ, với các sản phẩm Cisco Unified Computing System (UCS). Hình ảnh cho thấy một thiết bị UCS B-Series (Blade series). Nó có thể gắn trên một giá đỡ (bằng các lỗ ở hai bên), với 8 khe cắm linh kiện (4 mỗi bên) sắp xếp theo chiều ngang. Nó cũng có 4 bộ nguồn cung cấp điện ở bên dưới.
Hình: Máy chủ Cisco UCS: B-Series (Blade)
Các thiết bị máy chủ ngày nay có thể chứa nhiều con chip CPU, RAM, dung lượng lưu trữ và card mạng (NICs). Nhưng bạn sẽ phải nghĩ khác đi vềc hệ điều hành chạy trên server bởi vì công cụ được gọi là server virtualization (ảo hóa máy chủ).
Cơ bản về ảo hóa máy chủ
Hãy nghĩ về một máy chủ - một thiết bị - như một máy tính. Nó có thể là một trong những “blade” như trong Hình 15-1, hoặc một máy tính mạnh bạn mua từ cửa hàng máy tính... Theo truyền thống, khi bạn nghĩ về một máy chủ, một máy chủ sẽ chỉ chạy một hệ điều hành. Bên trong nó, các phần cứng bao gồm CPU, RAM, các bộ nhớ lưu trữ (như là đĩa cứng) kèm theo một hoặc nhiều card mạng. Một hệ điều hành có quyền chi phối và sử dụng toàn bộ các phần cứng bên trong một thiết bị máy chủ để chạy một hoặc nhiều ứng dụng. Hình bên dưới cho chúng ta thấy các thành phần cơ bản của một máy chủ vật lí.
Hình: Mô hình máy chủ vật lý: Các phần cứng vật lí, một hệ điều hành và các ứng dụng chạy trên nó.
Với mô hình máy chủ vật lý được hiển thị trong hình, mỗi máy chủ vật lý chạy một HĐH và HĐH đó sử dụng tất cả phần cứng trong một máy chủ đó. Điều đó đúng trước khi có khái niệm ảo hóa máy chủ.
Ngày nay, hầu hết các công ty chọn triển khai các máy chủ ảo hóa. Để làm được điều đó, họ mua các thiết bị server, lắp nó lên các giá đỡ và gắn thêm các phần cứng như CPU, RAM, bộ nhớ cho nó... Sau đó, nhiều hệ điều hành sẽ được cài lên nó, gọi là các instances. Các instatnce sẽ được tách rời khỏi các phần cứng (lí do nó được gọi là ảo hóa). Mỗi thiết bị phần cứng mà trước đây chúng ta gọi nó là máy chủ sẽ chạy nhiều instances của các hệ điều hành ở cùng một thời điểm. Với mỗi instance đó, ta gọi nó là máy ảo (Virtual Machine – VM)
Một máy chủ vật lý cổ điển thường có có sức mạnh xử lí nhiều hơn cái bạn cần cho một hệ điều hành. Suy nghĩ về bộ xử lý trong giây lát, ta thấy CPU máy chủ hiện đại có nhiều lõi (bộ xử lý) trong một chip CPU.
Mỗi lõi cũng có thể chạy nhiều luồng với một tính năng gọi là đa luồng (multithreading). Vì vậy, khi bạn đọc về một bộ xử lý Intel cụ thể với 8 lõi và đa luồng (thường là hai luồng trên mỗi lõi), tức là mỗi con chip CPU có thể thực thi 16 chương trình khác nhau cùng lúc. Trình ảo hóa - hypervisor (sẽ giới thiệu sau) có thể xem mỗi luồng có sẵn là một CPU ảo (vCPU) và cung cấp cho mỗi VM một số vCPU.
Một VM, là một phiên bản có hệ điều hành được tách rời khỏi phần cứng nhưng vẫn phải chạy trên phần cứng. Nó có cấu hình là số tối thiểu vCPUs cần, RAM tối thiểu, v.v. Các hệ thống ảo hóa sau đó khởi động và chạy các VM trên các máy chủ vật lý sao cho tối ưu nhất về phần cứng và vẫn đảm bản các VM hoạt động ổn định. Vì vậy, tại bất kỳ thời điểm nào, mỗi VM đều đang chạy trên máy chủ vật lý, sử dụng một tập hợp CPU, RAM, đĩa cứng và các NIC trên máy chủ đó. Hình minh họa bên dưới cho ta thấy một máy chủ có khả năng ảo hóa, với bốn máy ảo riêng biệt đang chạy trên một máy chủ vật lý.
Hình: Bốn máy ảo đang chạy trên một máy chủ; Hypervisor sẽ quản lý phần cứng để cấp phát cho các VM.
Để có thể triển khai ảo hóa, các thiết bị server vật lí (gọi là host trong lĩnh vực ảo hóa) sử dụng hypervisor (trình ảo hóa). Hypervisor quản lý và phân bổ phần cứng máy chủ (CPU, RAM, v.v.) cho mỗi VM dựa trên các thiết lập cho VM do người quản trị phân bố. Mỗi VM sẽ hoạt động như một máy chủ vật lí khép kín, với một một số lượng cụ thể vCPU, RAM, NICs và bộ nhớ lưu trữ. Chẳng hạn, nếu một VM được cấu hình để sử dụng 4 CPU, với 8 GB RAM, hypervisor sẽ phân bổ các phần cụ thể của CPU và RAM tùy theo nhu cầu của VM, với tối đa là mức mà quản trị viên thiết lập (giúp tối ưu hiệu suất phần cứng).
Một số thương hiệu lớn nối tiếng trong lĩnh vực ảo hóa máy chủ:
Ngoài các hypervisor, các công ty trên còn cung cấp các hệ thống ảo hóa hoàn chỉnh. Những hệ thống cho phép các quản trị viên có thể tạo các VMs, khởi động chúng, di chuyển chúng (theo cách thủ công và tự động) đến các máy chủ khác nhau hoặc tắt chúng. Ví dụ, khi cần phải bảo trì phần cứng đang chạy các VMs, kĩ thuật viên có có thể di chuyển VM đến thiết bị máy chủ khác (ngay cả trong khi các VM đang hoạt động) để có thể thực hiện bảo trì.
Các Switch ảo (Virtual Switches) trên một host ảo hóa
Các công cụ ảo hóa máy chủ cung cấp nhiều tùy chọn về cách kết nối các VM với mạng. Phần này sẽ không thảo luận về tất cả, nhưng sẽ giúp bạn có một khác niệm cơ bản trước khi suy nghĩ thêm về điện toán đám mây (cloud computing).
Đầu tiên, máy chủ vật lí cần những gì để thực hiện chức năng kết nối mạng? Thông thường nó sẽ có một hoặc nhiều NICs, tốc độ của chúng có thể là 1 Gbps (tương đối chậm), ngày nay thường là 10 Gbps, và thậm chí có thể nhanh hơn (như là 40 Gbps).
Tiếp theo, hãy nghĩ về VM. Thông thường, một hệ điều hành có một NIC, có thể nhiều hơn nữa. Để làm cho hệ điều hành hoạt động như bình thường, mỗi VM cũng sẽ có (ít nhất) một NIC, nhưng đối với VM, nó là card mạng ảo (virtual NIC). Virtual NIC có thể có các tên gọi khác nhau tùy. Ví dụ, trong các hệ thống ảo hóa VMware, card mạng ảo có tên vNIC.
Cuối cùng, máy chủ phải kết hợp các các NIC vật lý với các vNIC được các VM sử dụng thành một loại mạng. Thông thường, mỗi máy chủ sử dụng một số concept chuyển mạch Ethernet nội bộ, thường được gọi là virtual switch, hoặc vSwitch. Hình 15-4 cho thấy một ví dụ, với bốn VM, mỗi VM sở hữu một vNIC. Máy chủ vật lý có hai NIC vật lý. Các vNIC và các NIC vật lý kết nối với một switch ảo nội bộ.
Hình: Cơ bản về mạng bên trong một thiết bị được ảo hóa với virtual switch.
Điều thú vị là, vSwitch có thể được cung cấp bởi nhà cung cấp hypervisor hoặc bởi Cisco. Chẳng hạn, Cisco cung cấp switch ảo Nexus 1000VE (thay thế switch ảo Nexus 1000V cũ). Nexus 1000VE chạy hệ điều hành NX-OS được giới thiệu là dòng switch ảo dành cho các data center. Ngoài ra, Cisco cung cấp Cisco ACI Virtual Edge, một switch ảo khác, sẽ được giới thiệu sau.
Các vSwitch được trong hình có cùng các tính năng mà bạn học được trong chương trình CCNA; Nếu sử dụng vSwitch từ Cisco (và có kiến thức CCNA), ta sẽ rất dễ dàng làm quen về các tính năng, cách cấu hình… Bao gồm:
Mạng của trung tâm dữ liệu vật lí
Mỗi máy chủ lưu trữ cần một kết nối vật lí. Nhìn lại hình trên, máy chủ đó, với hai NIC vật lý, cần phải kết nối chúng với một LAN switch trong trung tâm dữ liệu.
Hình bên dưới cho thấy cách đấu nối cáp truyền thống trong một mạng LAN của data center. Mỗi hình chữ nhật cao nhất đại diện cho một rack bên trong một trung tâm dữ liệu, với các ô nhỏ tượng trưng cho các cổng NIC, kèm theo biểu thị về cáp.
Hình: Data Center truyền thống với switch vật lí dạng Top-of-Rack và End-of-Row
Thông thường, mỗi máy chủ được kết nối với hai witch khác nhau trên đỉnh của rack (gọi là Top of Rack – ToR) để cung cấp khả năng dự phòng. Mỗi ToR switch hoạt động như một switch ở lớp access từ góc độ thiết kế (mô hình 3 lớp). Mỗi ToR switch sau đó được kết nối tới một EoR (End of Row) switch, nó sẽ hoạt động như một switch distribution và kết nối đến phần còn lại của mạng.
Thiết kế trên là một cách quy hoạch cáp kết nối cổ điển. Một số công nghệ trung tâm dữ liệu yêu cầu các mô hình khác nhau, như là Cisco Application Centric Infrastructure (ACI). ACI đặt máy chủ và switch vào các racks, nhưng kết nối các switch với các mô hình khác – một mô hình được dùng để ACI có thể hoạt động.
Quy trình làm việc với Data Center được ảo hóa
Đến phần này, ta đã biết được các thông tin cơ bản và quan trọng để chuẩn bị thảo luận về điện toán đám mây. Ảo hóa máy chủ là một bước cải tiến lớn trong vận hành của các trung tâm dữ liệu, nhưng chỉ riêng ảo hóa không thể tạo ra một môi trường điện toán đám mây. Chúng ta hãy tiếp tục bàn về các công nghệ nền tảng trước khi ta có thể nói về cloud computing, như là quy trình làm việc với một data center được ảo hóa.
Một số nhân viên IT, ta gọi họ là kĩ sư hệ thống, kĩ sư ảo hóa hoặc quản trị viên, mua và lắp đặt các host (server) mới. Họ thu thập các yêu cầu, kế hoạch về công suất cần thiết, tìm kiếm phần cứng, mua nó và lắp đặt nó. Ngày trước, họ chỉ quản lí các server và thực hiện công việc của một kĩ sư IT, nhưng bây giờ họ có thể làm việc với cả các công cụ ảo hóa.
Các kĩ sư ảo hóa cũng cài đặt và tùy chỉnh công cụ ảo hóa. Ngoài các trình ảo hóa trên mỗi máy chủ, nhiều công cụ khác rất hữu ích khác trong việc quản lý và kiểm soát trung tâm dữ liệu ảo hóa. Chẳng hạn, một công cụ có thể cho các kĩ sư có cái nhình nhìn toàn cảnh trung tâm dữ liệu, với tất cả các máy ảo đang chạy ở đó, hiển thị lên các khả năng server có thể cung cấp để chạy các VM. Theo thời gian, kĩ sư máy chủ / ảo hóa thêm các máy chủ vật lý mới đến trung tâm dữ liệu, sau đó cấu hình hệ thống ảo hóa sử dụng nó và đảm bảo nó có thể hoạt động.
Bây giờ, một khách hàng cần một “máy chủ”. Thực tế, khách hàng muốn có một VM (hoặc nhiều hơn) với các yêu cầu: số lượng vCPUs cụ thể, dung lượng RAM, v.v. Khách hàng sẽ gửi yêu cầu cho kĩ sư ảo hóa/kĩ sư server để thiết lập các VM, như trong hình bên dưới.
Hình: Quy trình truyền thống: Khách hàng (con người) gửi yêu cầu cho các kĩ sư IT để yêu cầu một dịch vụ.
Mô hình chỉ ra những gì xảy ra sau khi người dùng đưa ra yêu cầu mà có thể được giải thích như sau:
Quy trình được chỉ ra ở trên hoạt động tốt. Tuy nhiên, cách tiếp cận để cung cấp dịch vụ như thế đã làm phá vỡ một số tiêu chuẩn cơ bản của dịch vụ đám mây. Ví dụ, điện toán đám mây yêu cầu khả năng tự vận hành. Theo quy trình ở trên, nếu được nhìn với góc độ của dịch vụ đám mây, quá trình ở bước 2 không nên đòi hỏi con người để thực hiện các yêu cầu, thay vào đó các yêu cầu nên được thực hiện một cách tự động. Nếu bạn muốn có thêm các VM trong hạ tầng đám mây, bạn chỉ cần nhấp chuột vào giao diện và yêu cầu tạo thêm VM mới, đi lấy một cốc cà phê, VM của bạn sẽ được thiết lập và khởi động theo yêu cầu của bạn trong vòng vài phút.
Tóm tắt lại một vài điểm quan trọng về data center được ảo hóa sẽ dẫn ta đến khái niệm điện toán đám mây: