Khi bạn nghĩ về một server, bạn nghĩ đến điều gì? Có phải là một máy tính với CPU nhanh? Có nhiều RAM? Phần cứng của nó có thể dễ dàng lắp đặt vào giá đỡ (rack) trong một trung tâm dữ liệu?
Khi bạn nghĩ về một server, có khi nào bạn không nghĩ về phần cứng mà suy nghĩ về hệ điều hành của nó. Máy tính mà đang chạy ở đâu đó, không phụ thuộc vào phần cứng, được gọi là máy ảo (Virtual Machine – VM)?
Với mức độ thảo luận trong chương trình CCNA, một server là nơi để chạy các ứng dụng, nơi mà người dùng có thể kết nối với các ứng dụng đó thông qua mạng. Server được thể hiện với biểu tượng nhìn giống một máy tính desktop. Thật ra Cisco dùng nó để biểu thị cho server. Chủ đề tiếp theo sẽ phá vỡ 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.
Hãy suy nghĩ về các yếu tố của một server - đó 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 server 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 server, hãy xem các sự thật sau về nó:
NO KVM (Keyboard, Video display, Mouse): Đối với hầu hết các server, không có người dùng ngồi gần server; tất cả người dùng và quản trị viên đều kết nối với server qua mạng. Kết quả là không cần cả bàn phím, màn hình hay chuột.
Giá đỡ các server trong trung tâm dữ liệu: Trong những năm gần đây, một server 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 server vào một phòng – một trung tâm dữ liệu – để tiết kiệm không gian. Vì thế, tạo ra các server 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 mong đợi các người dùng ngồi trước các server.
Ví dụ, Hình 1 cho ta thấy thiết bị server của Cisco. Trong khi bạn chỉ có thể nghĩ về Cisco như một công ty mạng, khoảng năm 2010, Cisco đã ra mắt các sản phẩm cho thị trường server, với Cisco Unified Computing System (UCS). Hình ảnh cho thấy một thiết bị UCS B-Series (Blade series) có thể gắn trên giá đỡ với các khe cắm các linh kiện. Thiết bị trong hình 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 ở phần bên dưới.
Các thiết bị server ngày nay cung cấp khả năng chứa nhiều con chip CPU, RAM, dung lượng lưu trữ và card mạng (NICs). Nhưng bạn cũng phải nghĩ đi về 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 server).
Hãy nghĩ về một server - một thiết bị - như một máy tính. Nó có thể tương tự như Hình 1, hoặc một máy tính mạnh mà bạn mua từ cửa hàng... Theo truyền thống, khi bạn nghĩ về một server, một server 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) kèm theo một hoặc nhiều card mạng (NIC). Một hệ điều hành (OS) 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ị server để chạy một hoặc nhiều ứng dụng. Hình 2 cho ta thấy các thành phần cơ bản của một server vật lý.
Với mô hình server vật lý được hiển thị trong Hình 2, mỗi server vật lý chạy một hệ điều hành (OS) và hệ điều hành (OS) đó sử dụng tất cả phần cứng trong một server đó. Điều đó đúng trước khi có khái niệm ảo hóa server.
Ngày nay, hầu hết các công ty chọn triển khai các server ảo hóa. Để làm được điều đó, họ mua các thiết bị server, lắp nó lên các giá đỡ (rack), và xem tất cả CPU, RAM, v.v là tài nguyên trong Data Center.
Sau đó, mỗi phiên bản hệ điều hành (OS) đượ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à server sẽ chạy nhiều phiên bản của các hệ điều hành (OS) ở cùng một thời điểm. Với mỗi phiên bản hệ điều hành ta gọi nó là máy ảo (Virtual Machine – VM)
Một server vật lý độc lập thường có hiệu năng xử lý nhiều hơn cái bạn cần cho một hệ điều hành (OS). Hãy suy nghĩ về bộ xử lý trong giây lát. CPU server 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 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 tối thiểu số vCPUs cần, RAM tối thiểu, v.v. Các hệ thống ảo hóa sau đó khởi động các VM trên các server vật lý sao cho tối ưu nhất về phần cứng mà 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 server vật lý, sử dụng một tập hợp CPU, RAM, đĩa cứng và các NIC trên server đó. Hình 3 minh họa cho ta thấy một server 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 server vật lý.
Để 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 server (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 server 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ố nhà cung cấp nối tiếng trong lĩnh vực ảo hóa server:
Ngoài các hypervisor, các công ty như trong danh sách 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 (thủ công và tự động) đến các server 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ị server khác (ngay cả trong khi đang chạy) để có thể thực hiện bảo trì.