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ó:
Không có KVM (Keyboard, Video display or Mouse): Đối với hầu hết các máy chủ, không có người dùng nào ngồi gần máy chủ; tất cả người dùng và quản trị viên kết nối với máy chủ qua mạng. Kết quả là, không cần cả bàn phím, màn hình hay chuột.
Giá đỡ máy chủ (các racks) trong trung tâm dữ liệu: Trong những năm đầu, một máy chủ là bất kỳ máy tính nào có CPU tương đối nhanh, dung lượng RAM lớn, v.v. Ngày nay, các công ty đặt nhiều máy chủ vào một phòng – một trung tâm dữ liệu – để tiết kiệm không gian. Vì thế, thiết kế ra các máy chủ phù hợp với các giá đỡ tiêu chuẩn giúp sử dụng không gian hiệu quả hơn - đặc biệt là khi bạn không người dùng không ngồi phía trước các máy chủ.
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ủ:
- VMWare vCenter
- Microsoft Hyper V
- Citrix XenServer
- Red Hat KVM
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ì.