Tìm hiểu về dịch vụ hạ tầng, tích hợp công nghệ dựa trên nền tảng Cloud

0

Thảo luận chút về dịch vụ hệ thống máy chủ, Cloud, phân biệt các khái niệm về các thể loại Server, từ vật lý cho đến ảo hóa.

1. Máy chủ vật lý

– Phổ biến nhất có lẽ là loại RACK, dạng phẳng, độ dày tính theo đơn vị U, với 1 U sẽ là 1.75 inches. Có nhiều loại đa dạng từ 1U tới tận 4U đều có hết. Đa số loại U càng dày thì hiệu suất càng mạnh. Các loại dày 2U đa phần sẽ luôn có 2 Socket, tức là gắn được 2 CPU. Máy chủ dạng này có thể cài đặt đủ mọi loại hệ điều hành miễn là hệ điều hành hỗ trợ Drivers đủ cho Card RAID là được. Ngoài ra các loại Server hiện tại đều có một cổng mạng gọi là “Dedicated NIC”, có nghĩa là cổng riêng, cổng này luôn ở chế độ Power On, Server chỉ cần cắm nguồn là cổng này sẽ On, không cần bật Server lên thì các NIC mới On như các cổng NIC thường. Cổng này có nhiều chức năng liên quan tới thao tác phần cứng như RAID Configuration, Power-Control, Disk Policy, Boot, BIOS Setup, cung cấp giao diện truy cập vào Monitor hiệu suất Server từ OS Software.

2. Máy chủ ảo

– Có nghĩa là máy chủ được tạo ra dựa trên công nghệ ảo hóa được cài đặt trên một máy chủ vật lý, các OS ảo hóa sẽ được cài lên máy chủ vật lý và quản trị viên có thể tạo một máy chủ ảo bằng cơ chế cấp phát tài nguyên hoặc chia tài nguyên phần cứng ra cho máy chủ ảo. Máy chủ vật lý được cài ảo hóa được gọi là một “Hypervisor”. các CPU của Intel / AMD đều hỗ trợ các công nghệ này, chúng được viết các tập lệnh hỗ trợ cho các Hypervisor truy xuất các thao tác như chia, quản lý, cấp phát tài nguyên ở mức Hardware Virtualization. Có lẽ nhiều bác cũng biết về Virtualization, VMware, Hyper-V cho đến AWS, Azure v.v… rồi nên em xin phép đi thẳng vào vấn đề luôn !!!!

Nền tảng cloud

3. Thảo luận và các câu hỏi liên quan

Q: Cơ chế của ảo hóa là gì ?

A: Một máy tính bình thường cho đến máy tính dạng Server đều có Firmware, mạch điện tử tích hợp, tập lệnh xử lý trên Mainboard, Card tích hợp hoặc mở rộng. Ảo hóa đa phần dựa trên con CPU chính là nhạc trưởng cho toàn bộ dàn nhạc luôn. Khi một máy ảo được tạo ra, thì nó sẽ ăn thẳng trực tiếp CPU, RAM luôn. CPU hỗ trợ cho máy ảo truy xuất thẳng luôn 2 thiết bị này. Còn các thiết bị khác đa phần là được “ảo hóa”. Nghĩa là khi cài đặt xong hệ điều hành các thứ hoặc “check phần cứng con máy ảo đó” các thiết bị được ảo hóa sẽ hiện Vendor name của Hypervisor mà tạo ra máy ảo. Về Firmware của các thiết bị ảo này thì tùy vào loại Hypervisor nào mà họ sẽ viết Firmware như nào. Nhưng Firmware này sẽ dựa trên các tập lệnh mà CPU hỗ trợ. Các CPU hỗ trợ và có thể bật Virtualization Feature tính là tính năng mở truy xuất các tập lệnh để hỗ trợ tạo một mạch IO ảo như vậy, Card SCSI, Card IDE, Card Network sẽ được viết bởi Hypervisor bằng cách lập trình để truy xuất tập lệnh CPU sao cho tối ưu nhất. Và CPU sẽ chịu trách nhiệm xử lý. Ví dụ Server có thể không có card SCSI nhưng Hypervisor sẽ tạo ra SCSI Card cho bạn. Sau đó đẩy tiếp qua ổ SATA vật lý để có thể ghi vào thiết bị vật lý. Vậy ta có các thiết bị chính là Mainboard, Card giao tiếp ảo hoàn toàn, có thể tạo nhiều Card như vậy cho nhiều máy ảo tùy vào hiệu suất. Hầu hết toàn bộ thiết bị ảo đều qua cơ chế do con CPU xử lý, xong đẩy xuống thiết bị vật lý thật. Về cơ bản là vậy. Tiếp tục nào ….

Q: Vì phần ảo hóa được xử lý ở mức CPU và Hardware nên khi tạo một máy ảo trên một máy chủ vật lý, nhiều người sẽ khá phân vân việc hiệu suất có ổn định không. Có bị chậm đi nhiều không ????

A: Về phần này thì mình xin phép diễn giải như sau

– Vì phần ảo hóa được thực hiện ở mức Hardware Virtualization hay còn gọi là Bare-Metal Level 1. Mức cao nhất của ảo hóa, như là cài thẳng vSphere hoặc Hyper-V Core, Citrix, tính cả KVM nữa. Và máy chủ ảo được tạo ra là gần như chạy trực tiếp trên máy vật lý bao gồm CPU, RAM, Các thiết bị qua khe cắm PCI, v.v….Một số thiết bị khác như Storage và Network thì có hơi đặc thù một chút vì nó sẽ được thiết kế để thể hiện sức mạnh thật sự của ảo hóa

+ Network: có thể tạo Virtual Switch (Switch ảo) để các VM (máy ảo) bên trong lưu thông với nhau bằng tốc độ nhanh nhất, 10 Gbp/s là chuyên bình thường. Switch ảo này được quản lý bởi Hypervisor và sẽ là cầu nối giữa VM ra ngoài tới một thiết bị, đường truyền vật lý hoặc ảo nằm bên ngoài. Ví dụ máy Server mình có 2 Card NIC vật lý, nếu share thẳng cho VM thì chỉ tạo được 2 VM. Thay vào đó mình sẽ tạo một Switch ảo sau đó tạo vô số Card NIC ảo cho các VM, còn việc đi ra ngoài sẽ đi chung 2 Card kia ra ngoài, Switch này mình có thể cấu hình gộp 2 NIC thành 2 Gbp/s , cân bằng tải đường truyền hoặc Failover nếu một đường bị Loss. Còn bên trong thì sẽ đi ra ngoài qua Switch trung gian này, Switch có thể cấu hình VLAN, Trunking, Set Bandwidth, Security Mode tùy vào Hypervisor. Vậy là ta sẽ có Switch ảo là Mode chính trong ảo hóa. Đây là công nghệ phổ biến trong các Hypervisor hiện nay. Còn về lý thuyết thì nó là một Switch ảo, tưởng tượng một con Switch vật lý Cisco có cấu hình là 128 MB RAM, CPU 1000 Mhz chẳng hạn. Thì khi tạo Switch ảo cũng sẽ như vậy, Hypervisor sẽ tạo Switch ảo do chính Hypervisor quản lý và cấp riêng tài nguyên cho Switch này cho việc định tuyến như Switch thật luôn. Còn về phía VM thì cũng sẽ tạo NIC ảo và do tài nguyên được chia cho VM quản lý NIC này. Về hiệu suất thì khi chạy 2 con VM chung một Host hoặc giữa 2 Hypervisor tối ưu hơn rất nhiều, nhanh hơn rất nhiều. 2 con VM trên VMware cùng một Host có thể giao tiếp với nhau bằng tốc độ 10 Gbp/s . So với việc phải đi ra ngoài Switch vật lý port 1 Gbp/s hoặc 100 Mbp/s xong quay về thì Virtual NIC trên vSwitch lúc này hiệu quả hơn rất nhiều. Khi đi sang Server chạy Hypervisor khác thì chỉ cần đầu tư một đường truyền tốc độ cao, ví dụ gộp 4 đường Ethernet 4 Gbp/s lại hoặc đóng một card quang + 1 SFP 10 Gbp/s đi sang Server còn lại, sau đó cấu hình chia băng thông hợp lý là có thể thay thế việc giảm thiểu sử dụng Switch vật lý tốn không gian, tài nguyên. Đây chính là công nghệ SDN và SDWAN đang phổ biến nhất hiện nay

+ Storage: Đây là cái phức tạp và đau đầu nhất trong khi triển khai ảo hóa. Trước tiên nói về ảo hóa thì ổ cứng cũng sẽ được ảo hóa luôn, giống như Network, nó cũng sẽ tạo ổ cứng ảo. Là một dạng file dạng image. Thực ra thì bản chất của ổ cứng vật lý cũng là một dạng “file”. Trên ổ cứng vật lý có các con Chip và Mạch IO giao tiếp như các thiết bị khác. Các hệ điều hành kết nối vào ổ cứng sẽ tạo ra các file như dạng /dev/disk0,1,2,3 dựa trên mạch giao tiếp IO này cung cấp. Máy tính khi bật lên sẽ Load ổ cứng vào và tiến hành đọc “file” . Vì bản chất nó là file mà, nó có header file (MBR và GPT chứa bảng phân vùng). Các phân vùng, định dạng được quy định bới các Header như file bình thường mình hay sử dụng vậy. Ổ cứng ảo là một dạng file như vậy, và mạch giao tiếp IO ở đây cũng chính là Hypervisor tạo ra cho máy ảo, Có drivers do nhà phát triển Hypervisor viết ra và cài trên OS như thật luôn. Còn ổ cứng sẽ được tạo thành nhờ tạo một file dạng image. File này cũng giống cơ chế của ổ cứng là có Header file các thứ luôn. Sẽ được cấp phát block hoặc Allocated sized . Giao tiếp qua Drivers của Hypervisor với -> Card SCSI / SATA ảo -> ghi vào ổ cứng thật. Giờ quay lại về vấn đề hiệu suất, ví dụ tạo 10 con VM cùng dùng một ổ cứng SATA 7200 RAID 1 có tốc độ là 120 MB / S đọc ghi cơ bản đi. Vậy có nghĩa là khi 2 con VM cùng copy file thì mỗi con là 60 MB / S theo lý thuyết đúng không ? Mình chưa test cụ thể nhưng sự thật thì tốc độ ổ vật lý là tốc độ Share vì ổ đã đạt max tốc độ vậy rồi. Tuy nhiên ảo hóa giải quyết việc này bằng việc sử dụng định dạng Shared Storage và các dạng liên kết nhiều ổ cứng lại trên nhiều Server qua cổng mạng tốc độ cao thành một để cân bằng hiệu suất giữa các VM. Ví dụ VMWARE có định dạng phân vùng riêng là VMFS 5 / 6, công nghệ vSAN, vSAN Cluster v.v.., OpenStack có CEPH hỗ trợ. Vì cái này hơi dài nên mình bỏ qua một đoạn và tóm gọn lại đó là Storage trên ảo hóa sẽ được “gộp” lại từ nhiều Server và có thể đi lại với nhau qua đường Network tốc độ cao như Fiber Connection . VM từ các Hypervisor sẽ dùng chung một Storage được bó lại này, giống như RAID vậy nhưng ở Level cao hơn và mới hơn một chút.

Q. Cloud Server và VPS là như nào ???

A. Đầu tiên là về VPS

– VPS là một mảy ảo đơn thuần được tạo ra từ Hypervisor mà thôi. Có nhiều loại VPS, Nhiều loại ở đây không phải ý là từ các Hypervisor khác nhau mà là về hiêu suất. Khi tạo máy ảo thì các trình quản lý tập trung Hypervisor và VM sẽ tạo máy ảo, cấp phát “Pool”, có nghĩa là một cái không gian tài nguyên cho cái máy ảo này. Có 2 con Server chạy Hypervisor với cấu hình mỗi con là 32 GB RAM và 32 CPU nhân với 2 con là 64 / 64. GIỜ sẽ tạo 16 con VM với mỗi con là 2 RAM / 4 CPU. Như Web Server thì như vậy là ổn rồi. Như vậy thì tính ra còn 16 GB RAM nữa bỏ trống, hơn nữa nhiều con VPS CPU chỉ nhảy có 200 Mhz tương đương với một nửa hiệu suất 1 vCPU mà thôi, Vì vậy mà nhiều nhà cung cấp sẽ tạo ra các Shared VPS, tức là với 64 GB / RAM và 64 CPU có thể tạo được 80 hoặc 100 con VPS, cấp Resource Pool là mặt bằng chung. Như kiểu đường đi vậy, có 1 tuyến bus BRT đi riêng một đường vẫn cứ đi bình thường đường đó, nhưng giờ cao điểm thì mấy ông ô tô con hoặc xe máy có thể tràn sang chơi trò điền vào chỗ trống vậy. Như vậy đi BRT vẫn bị tắc và chậm vào giờ cao điểm, VPS Shared thì cũng vậy, giá cũng sẽ rẻ hơn. Còn VPS chuẩn và đắt tiền thì sẽ được xây dải phân cách, kể cả không chạy thì đường đó, chỗ tài nguyên đó vẫn là của ông, ông toàn quyền hiệu suất trên đường đó.

– Cloud Server: Đây đúng ra là một máy vật lý dạng Dedicated Server nhé. Nhưng sẽ không được toàn quyền sử dụng nó như kiểu cài đặt truy xuất vật lý các thứ, vì nó là “Cloud” Server mà. Là một máy vật lý được cài sẵn một Hypervisor nào đó ví dụ như KVM hoặc vSphere. Sau đó để sử dụng nó sẽ không thể truy xuất thẳng vào qua Hypervisor được mà sẽ qua một cái Controller nằm ở con Server khác dùng để quản lý con Server kia qua chỉ cái giao diện đấy thôi. Bao gồm các thao tác như trên Hypervisor bình thường thôi. Có nghĩa Cloud Server là một Hypervisor trên một máy vật lý nhưng bị giới hạn chỉ có thể sử dụng Hypervisor đúng nghĩa luôn chứ không thể sử dụng máy vật lý !

Leave A Reply

Your email address will not be published.