<img src="https://certify.alexametrics.com/atrk.gif?account=53pUm1a4KM+2vg" style="display:none" height="1" width="1" alt="">

Cấu trúc của một đám mây nguồn mở

Đăng bởi Thuy Tien Tran vào

Điện toán đám mây không còn là một công nghệ ở đỉnh điểm bùng nổ nữa mà là một công nghệ có giá trị và quan trọng đang thay đổi cơ bản cách chúng ta sử dụng và phát triển các ứng dụng. Như bạn mong đợi, Linux® và mã nguồn mở cung cấp nền tảng cho đám mây (dành cho cơ sở hạ tầng công cộng và riêng tư). Hãy nghiên cứu cấu trúc đám mây, kiến trúc của nó và các công nghệ mã nguồn mở được sử dụng để xây dựng các nền tảng điện toán và lưu trữ có khả năng mở rộng và năng động.

Việc sử dụng đám mây như là một khái niệm trừu tượng khá phổ biến với hệ thống phân tán là Internet, nhưng một vài năm qua đã cho thấy khái niệm trừu tượng này được mở rộng để hợp nhất các cơ sở hạ tầng có khả năng mở rộng và được ảo hóa mức độ cao, dễ dàng được cung cấp như một dịch vụ (hoặc cục bộ hoặc từ xa).

Cấu trúc điện toán đám mây

Bài viết này bắt đầu bằng việc xem xét các khái niệm trừu tượng cốt lõi của kiến trúc đám mây (từ cơ sở hạ tầng như một dịch vụ [IaaS: Infrastructure as a Service]), sau đó bước ra ngoài các khối xây dựng tới các giải pháp tích hợp cao hơn.

Mặc dù không phải là một yêu cầu, nhưng công nghệ ảo hóa mang lại các lợi ích có một không hai để xây dựng các kiến trúc có khả năng mở rộng động. Ngoài khả năng mở rộng, công nghệ ảo hóa còn đưa vào khả năng di chuyển các máy ảo (VM) giữa các máy chủ vật lý dùng cho các mục đích cân bằng tải. Hình 1 cho thấy rằng thành phần ảo hóa được tạo ra bởi một tầng phần mềm có tên là tầng siêu giám sát -hypervisor (đôi khi được gọi là giám sát máy ảo [VMM]). Tầng này tạo ra khả năng chạy đồng thời nhiều hệ điều hành (và các ứng dụng của chúng) trên một máy tính vật lý. Trên tầng siêu giám sát là đối tượng gọi là máy ảo chứa đựng hệ điều hành, các ứng dụng và cấu hình. Theo tùy chọn, sự mô phỏng thiết bị có thể được tạo ra trong tầng siêu giám sát hoặc như là một máy ảo. Cuối cùng, do tính chất năng động mới của công nghệ ảo hóa và các khả năng mới do nó mang lại, cần có các lược đồ quản lý mới. Việc quản lý này tốt nhất được thực hiện trong các tầng, khi tính đến quản lý cục bộ tại máy chủ, cũng như quản lý cơ sở hạ tầng mức cao hơn, tạo ra sự phối hợp tổng thể của môi trường ảo.

Hình 1. Các phần tử cốt lõi của một nút trong đám mây

Nếu bạn lấy các nút mạng như Hình 1 và nhân chúng lên nhiều lần trên một mạng vật lý với lưu trữ có chia sẻ, phối hợp quản lý trên toàn bộ cơ sở hạ tầng, rồi cung cấp cân bằng tải ban đầu của các kết nối đến (cho dù theo cách thiết lập công cộng hay riêng tư) với việc lưu trữ nhanh và lọc, bạn có một cơ sở hạ tầng ảo được gọi là đám mây. Cấu trúc mới này được chỉ ra trong Hình 2. Các máy không hoạt động có thể được tắt nguồn điện cho đến khi cần bổ sung thêm khả năng tính toán (tạo ra hiệu năng tốt hơn), với các máy ảo được cân bằng (thậm chí là động) trên các nút tùy thuộc vào tải riêng của chúng.

Biểu đồ cho thấy các tầng tương tác đám mây khác nhau, bắt đầu bằng lưu trữ/nối mạng vật lý                      và làm việc lên đến những người dùng/Internet

Hình 2. Cơ sở hạ tầng điện toán đám mây

Với kiến trúc cơ bản của một đám mây đã xác định, bây giờ chúng ta hãy tìm hiểu xem nguồn mở đang được áp dụng ở đâu để xây dựng cơ sở hạ tầng điện toán đám mây động.

Các công nghệ mã nguồn mở cốt lõi

Bối cảnh Linux đang chứng kiến một làn sóng phát triển tập trung vào các cơ sở hạ tầng được ảo hóa dành cho việc ảo hóa, quản lý và tích hợp với quy mô lớn hơn của các gói phần mềm đám mây. Chúng ta hãy bắt đầu xem xét mã nguồn mở ở cấp nút mạng riêng lẻ, sau đó chuyển lên toàn bộ cơ sở hạ tầng để xem chuyện gì đang xảy ra ở đây.

Các tầng siêu giám sát

Cơ sở của đám mây ở cấp nút mạng là tầng siêu giám sát. Mặc dù việc ảo hóa không phải là một yêu cầu, nhưng nó cung cấp khả năng không thể thiếu được cho các kiến trúc có khả năng mở rộng và có hiệu năng. Ở đó tồn tại một số giải pháp ảo hóa mã nguồn mở, nhưng có hai giải pháp chủ yếu là chuyển đổi hệ điều hành Linux thành một tầng siêu giám sát: KVM (Linux Kernel Virtual Machine - Máy ảo nhân Linux) và Lguest. KVM là giải pháp tầng siêu giám sát chính thức, được triển khai trong môi trường sản xuất. Lguest là một giải pháp tập trung vào Linux, chỉ chạy các máy ảo Linux, nhưng được tích hợp trong nhân (kernel) và đang được sử dụng rộng rãi hơn.

Ngoài việc chuyển đổi Linux thành tầng siêu giám sát, có những giải pháp khác chọn cách tiếp cận tập trung vào máy ảo khách. UML (User-Mode Linux - Linux trong chế độ người dùng) là một cách tiếp cận, sửa đổi nhân (kernel) Linux máy khách để chạy trên hệ điều hành Linux (không có phần mở rộng tầng siêu giám sát). Vì hầu hết người dùng muốn chạy một nhân chưa sửa đổi, nên các giải pháp ảo hóa đầy đủ (như KVM) được ưa thích hơn.

Cách tiếp cận UML này cũng rất phổ biến, nhưng đòi hỏi phần cứng ảo hóa (như là bàn điều khiển, đĩa ảo và kết nối mạng).

Mô phỏng thiết bị

Tầng siêu giám sát cung cấp các phương tiện để chia sẻ CPU với nhiều hệ điều hành (ảo hóa CPU), nhưng để cung cấp công nghệ ảo hóa đầy đủ, toàn bộ môi trường phải được ảo hóa cho các máy ảo. Việc mô phỏng máy — hay nền tảng — có thể được thực hiện theo một số cách, nhưng một gói mã nguồn mở phổ biến hỗ trợ một số các tầng siêu giám sát được gọi là QEMU. QEMU là trình mô phỏng và tầng siêu giám sát đầy đủ. Nhưng KVM sử dụng QEMU để mô phỏng thiết bị như một quá trình riêng biệt trong vùng người dùng (xem Hình 1). Một tính năng thú vị của QEMU là vì nó cung cấp mô phỏng đĩa (thông qua định dạng QCOW), nên QEMU cung cấp các tính năng cao cấp khác như ảnh chụp nhanh và di chuyển máy ảo sống.

Kể từ nhân 2.6.25, KVM sử dụng virtio như là một phương tiện tối ưu hóa hiệu năng ảo hóa vào/ra. Virtio thực hiện điều này bằng cách đưa vào các trình điều khiển có ảo hóa một phần vào tầng siêu giám sát với các móc nối từ máy khách để mang lại hiệu năng đến mức gần như nguyên bản. Việc này chỉ thực hiện được khi hệ điều hành có thể được sửa đổi cho mục đích này, nhưng tìm ra được cách sử dụng trong máy khách Linux trong các kịch bản tầng siêu giám sát của Linux.

Hiện nay, virtio và QEMU hoạt động cùng với nhau sao cho các giao dịch thiết bị được mô phỏng có thể được tối ưu hóa giữa máy khách Linux và bộ mô phỏng QEMU trong vùng người sử dụng.

Nối mạng ảo

Do các máy ảo hợp nhất trong các máy chủ vật lý, nên các nhu cầu nối mạng của nền tảng này tăng lên. Nhưng thay vì bắt buộc tất cả nối mạng các máy ảo tới các lớp vật lý của nền tảng này, để thay thế thì truyền thông nội bộ có thể tự được ảo hóa . Để tối ưu hóa truyền thông mạng giữa các máy ảo, có đưa vào chuyển mạch ảo. Chuyển mạch ảo vSwitch hoạt động giống như một chuyển mạch vật lý, nhưng được ảo hóa trong nền tảng này (xem Hình 3). Trong hình này, các giao diện được ảo hóa (VIF) đã liên kết với các máy ảo truyền thông qua chuyển mạch ảo tới các giao diện vật lý (các PIF).


Biểu đồ cho thất các tầng bắt đầu trên tầng cuối cùng với miền vật lý, rồi đến                     các giao diện vật lý, các giao diện ảo và các máy ảo trên cùng
Hình 3. Khung nhìn mức cao của Open vSwitch với các giao diện ảo và giao diện vật lý

Nguồn mở cũng đang giải quyết vấn đề này, bằng một giải pháp rất thú vị được gọi là Open vSwitch. Ngoài việc cung cấp một chuyển mạch ảo cho các môi trường ảo, vSwitch cũng có thể tích hợp ngang qua các nền tảng vật lý và cung cấp các tính năng mức doanh nghiệp như các mạng cục bộ ảo (VLAN), Chất lượng dịch vụ (QoS) dựa trên quyền ưu tiên, trung chuyển và hỗ trợ tăng tốc phần cứng (như các bộ điều hợp mạng ảo hóa vào/ra một gốc [IOV-single-root I/O virtualization]). Open vSwitch hiện có sẵn cho các nhân 2.6.15 và hỗ trợ một loạt các giải pháp ảo hóa dựa trên Linux (Xen, KVM, VirtualBox) và các tiêu chuẩn quản lý (Remote Switched Port Analyzer - Bộ phân tích cổng được chuyển mạch từ xa [RSPAN], NetFlow, v.v..).

Các công cụ và các công nghệ máy ảo

Do các máy ảo là sự kết hợp của hệ điều hành, hệ thống tệp gốc và cấu hình, nên không gian này đã chín muồi để phát triển công cụ. Nhưng để thấy rõ tiềm năng đầy đủ của các máy ảo và các công cụ, phải có một cách di động để lắp ráp chúng. Cách tiếp cận hiện tại, được gọi là Định dạng ảo hóa mở (OVF: Open Virtualization Format) là một cấu trúc máy ảo linh hoạt, hiệu quả và di động. OVF gói gọn một hình ảnh đĩa ảo trong một trình bao gói XML định nghĩa cấu hình của máy ảo, bao gồm các yêu cầu cấu hình nối mạng, bộ xử lý và bộ nhớ và một loạt siêu dữ liệu mở rộng để định nghĩa thêm các nhu cầu hình ảnh và nền tảng của nó. Khả năng quan trọng mà OVF cung cấp là tính di động để phân phối các máy ảo theo cách mà tầng siêu giám sát không thể biết được.

Hiện có một số tiện ích để quản lý các ảnh máy ảo (VMI) cũng như chuyển đổi chúng sang và từ các định dạng khác. ovftool của VMware là một công cụ hữu ích mà bạn có thể sử dụng để chuyển đổi VMI (ví dụ, để chuyển đổi từ định dạng Bộ dụng cụ phát triển đĩa ảo VMware [VMDK: VMware Virtual Disk Development Kit] sang OVF). Công cụ này và các công cụ khác rất hữu ích một khi bạn có một VMI, nhưng điều gì sẽ xảy ra nếu bạn có một máy chủ vật lý mà bạn muốn chuyển đổi thành một VMI? Bạn có thể sử dụng một công cụ hữu ích được gọi là Clonezilla cho mục đích này. Mặc dù lúc khởi đầu Clonezilla được phát triển như một công cụ sao chép đĩa dùng để phục hồi sau thảm họa, những bạn có thể sử dụng nó để chuyển đổi một thực thể máy chủ vật lý thành máy ảo để triển khai dễ dàng trong một cơ sở hạ tầng ảo hóa. Rất nhiều công cụ khác hiện có (như là các tiện ích được xây dựng trên libvirt) hoặc đang được phát triển để chuyển đổi và quản lý khi định dạng OVF được chấp nhận.

Quản lý cục bộ

Bài viết này tìm hiểu cách quản lý từ hai quan điểm. Phần này bàn về cách quản lý nền tảng, phần sau mở rộng sang cách quản lý cơ sở hạ tầng ở cấp độ cao hơn.

Red Hat đã giới thiệu thư viện libvirt như là một Giao diện lập trình ứng dụng (API) để quản lý ảo hóa nền tảng (các tầng siêu giám sát và các máy ảo). Điều làm cho libvirt thú vị là nó hỗ trợ một số các giải pháp tầng siêu giám sát (KVM và Xen là hai trong số đó) và cung cấp các liên kết API với một số ngôn ngữ (như C, Python và Ruby). Nó cung cấp "bước đi cuối cùng" về quản lý, giao tiếp trực tiếp với tầng siêu giám sát của nền tảng và mở rộng các API ra tới các giải pháp quản lý cơ sở hạ tầng lớn hơn. Với libvirt, để khởi động và dừng máy ảo rất đơn giản và nó cung cấp các API cho nhiều hoạt động cao cấp hơn, chẳng hạn như di chuyển các máy ảo giữa các nền tảng. Khi sử dụng libvirt, có thể sử dụng trình vỏ (shell) của nó (được xây dựng trên libvirt), được gọi là virsh.

Các công nghệ mã nguồn mở của cơ sở hạ tầng

Bây giờ bạn đã nhìn thấy một số các giải pháp nguồn mở ở cấp nút mạng ảo hóa, hãy xem xét một số ứng dụng nguồn mở khác có hỗ trợ cơ sở hạ tầng. Bài viết này tìm hiểu ba thể loại. Hai thể loại đầu là các công nghệ cấp cơ sở hạ tầng bổ sung cho các giải pháp đã thảo luận ở trên. Thể loại thứ ba bao gồm các giải pháp tích hợp để ghép tất cả các mảnh với nhau giúp cho việc triển khai đơn giản hơn.

Các công nghệ vào/ra

Việc xây dựng một kiến trúc Web có thể mở rộng và cân bằng tùy thuộc vào khả năng cân đối lưu lượng truy cập Web ngang qua các máy chủ thực hiện các chức năng tầng sau. Một số giải pháp cân bằng tải hiện có, nhưng gần đây, Yahoo! đã mở mã nguồn một giải pháp được gọi là Máy chủ lưu lượng (Traffic Server). Traffic Server rất thú vị, vì nó chứa đựng một số lượng lớn các khả năng trong một gói dành cho các cơ sở hạ tầng đám mây, bao gồm cả quản lý phiên làm việc, chứng thực, lọc, cân bằng tải và định tuyến. Yahoo! ban đầu mua lại sản phẩm này từ Inktomi, nhưng bây giờ đã mở rộng và giới thiệu sản phẩm trong nguồn mở.

Quản lý cơ sở hạ tầng

Việc quản lý cơ sở hạ tầng quy mô lớn hơn (quản lý nhiều tầng siêu giám sát và thậm chí nhiều máy ảo hơn) có thể được thực hiện theo một số cách. Hai trong số các giải pháp phổ biến nhất là mỗi giải pháp được xây dựng từ cùng một nền tảng (libvirt). Gói oVirt là một công cụ quản lý máy ảo mở có quy mô từ một vài máy ảo đến hàng ngàn máy ảo chạy trên hàng trăm máy chủ. Gói oVirt, do Red Hat phát triển, là một bàn điều khiển quản lý dựa trên Web, ngoài việc quản lý truyền thống, còn hỗ trợ tự động hóa phân cụm và cân bằng tải. Công cụ oVirt được viết bằng ngôn ngữ Python. VirtManager, cũng dựa trên libvirt và do Red Hat phát triển, là một ứng dụng với một giao diện người dùng GTK+ (thay vì dựa trên Web như oVirt). VirtManager trình bày một màn hình đồ họa phong phú hơn nhiều (về hiệu năng trực tiếp và sử dụng tài nguyên) và bao gồm một trình hiển thị khách Điện toán mạng ảo (VNC: Virtual Network Computing) với một bàn điều khiển đồ họa đầy đủ cho các máy ảo từ xa.

Còn Puppet là một gói phần mềm nguồn mở khác được thiết kế cho cơ sở hạ tầng trung tâm dữ liệu (một đám mây). Mặc dù không được thiết kế riêng cho các cơ sở hạ tầng ảo hóa, nó làm đơn giản hoá việc quản lý các cơ sở hạ tầng lớn bằng cách trừu tượng hóa các chi tiết của hệ điều hành ngang hàng. Nó thực hiện điều này thông qua việc sử dụng ngôn ngữ Puppet. Puppet là lý tưởng để tự động hóa các nhiệm vụ quản trị trên một số lượng lớn các máy chủ và được sử dụng rộng rãi hiện nay.

Các giải pháp IaaS tích hợp

Các gói nguồn mở sau đây có cách tiếp cận toàn diện hơn bằng cách tích hợp tất cả các chức năng cần thiết vào trong một gói duy nhất (bao gồm cả ảo hóa, quản lý, các giao diện và an ninh). Khi được thêm vào một mạng các máy chủ và lưu trữ, các gói này tạo ra các cơ sở hạ tầng điện toán đám mây và lưu trữ linh hoạt (IaaS).

Eucalyptus

Một trong những gói mã nguồn mở phổ biến nhất để xây dựng các cơ sở hạ tầng điện toán đám mây là Eucalyptus (viết tắt của Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems - Kiến trúc điện toán tiện ích linh hoạt để liên kết các chương trình của bạn với các hệ thống có ích). Điều làm cho nó độc nhất vô nhị là giao diện của nó là tương thích với Đám mây điện toán linh hoạt Amazon - Amazon Elastic Compute Cloud (Amazon EC2 — giao diện của điện toán đám mây của Amazon). Ngoài ra, Eucalyptus bao gồm Walrus (Hải mã), là một ứng dụng lưu trữ đám mây tương thích với Dịch vụ lưu trữ đơn giản của Amazon – Amazon Simple Storage Service (Amazon S3 — giao diện lưu trữ đám mây của Amazon).

Eucalyptus hỗ trợ KVM/Linux và Xen cho các tầng siêu giám sát và bao gồm việc trình phân phối cụm Rocks để quản lý phân cụm.

OpenNebula

OpenNebula là một ứng dụng mã nguồn mở thú vị khác (theo giấy phép của Apache) được phát triển tại Đại học Complutense de Madrid. Ngoài việc hỗ trợ xây dựng đám mây riêng, OpenNebula ủng hộ ý tưởng về các các đám mây lai. Đám mây lai cho phép kết hợp một cơ sở hạ tầng đám mây riêng tư với một cơ sở hạ tầng đám mây công cộng (như Amazon) để cho phép các mức độ mở rộng cao hơn.

OpenNebula hỗ trợ Xen, KVM/Linux và VMware và dựa vào các phần tử như libvirt để quản lý và tự kiểm tra.

Nimbus

Nimbus là một giải pháp IaaS khác tập trung vào các tính toán khoa học. Với Nimbus, bạn có thể thuê tài nguyên ở xa (chẳng hạn như tài nguyên do Amazon EC2 cung cấp) và quản lý chúng cục bộ (đặt cấu hình, triển khai các máy ảo, theo dõi, v.v). Nimbus được biến đổi từ dự án Dịch vụ vùng làm việc -Workspace Service (một phần của Globus.org). Do lệ thuộc vào Amazon EC2, nên Nimbus hỗ trợ Xen và KVM/Linux.

Nền tảng đám mây Xen

Citrix đã tích hợp Xen vào một nền tảng IaaS, sử dụng Xen như là tầng siêu giám sát trong khi tích hợp các khả năng mã nguồn mở khác như vSwitch Open. Một ưu điểm thú vị với giải pháp Xen là tập trung vào quản lý dựa theo các tiêu chuẩn (bao gồm cả OVF, Lực lượng đặc nhiệm quản lý phân tán [DTMF: Distributed Management Task Force], Mô hình thông tin chung [CIM: Common Information Model] và Sáng kiến quản lý ảo hóa [VMAN: Virtualization Management Initiative]) từ dự án Kensho. Ngăn xếp quản lý Xen hỗ trợ cho các bảo đảm của Thỏa thuận cấp dịch vụ (SLA), cùng với các số liệu thông kê chi tiết để trả phí sau.

OpenQRM

Cuối cùng nhưng không kém quan trọng là OpenQRM, được phân loại là nền tảng quản lý trung tâm dữ liệu. OpenQRM cung cấp một bàn điều khiển duy nhất để quản lý toàn bộ trung tâm dữ liệu được ảo hóa, về mặt kiến trúc trung tâm này có cho phép cắm thêm để tích hợp các công cụ của bên thứ ba. OpenQRM kết hợp hỗ trợ với tính sẵn sàng cao (thông qua dự phòng) và hỗ trợ một loạt các các tầng siêu giám sát, bao gồm KVM/Linux, Xen, VMware và Linux VServer.

Đi xa hơn nữa

Người ta có thể đã viết nhiều cuốn sách về vai trò dẫn đầu mà nguồn mở đang chào đón lĩnh vực đám mây và ảo hóa, còn bài viết này chỉ đưa ra một giới thiệu ngắn về một số giải pháp phổ biến và dễ thấy có sẵn hiện nay. Cho dù bạn đang muốn xây dựng một đám mây dựa trên các yêu cầu riêng của bạn từ những mảnh riêng biệt hoặc đơn giản chỉ muốn có một giải pháp gắn kết sẵn sàng hoạt động ngay, thì mã nguồn mở vẫn hỗ trợ đủ cho bạn.

Nguồn: IBM

Chủ đề: Công nghệ đám mây

Sự kiện sắp tới:

Sự kiện:

Các bài viết mới nhất

Bài viết xem nhiều nhất

Mục tiêu & Sứ mệnh

RY - profile picture-1

 Rick Yvanovich
//Người sáng lập & Giám Đốc Điều Hành//

Với trang blog của TRG International, sứ mệnh của chúng tôi là trở thành người bạn đồng hành đáng tin cậy và là người có thể cung cấp các giải pháp hoạt động tối ưu cho doanh nghiệp bạn. Chúng tôi sẽ đảm bảo rằng chúng tôi giúp doanh nghiệp của bạn càng ngày càng phát triển lớn mạnh hơn.

Đăng ký nhận bài viết từ TRG

Kết nối với chúng tôi