VietNetwork.Vn

 


Tác giả Chủ đề: Cấu trúc của một đám mây nguồn mở  (Đã xem 1040 lần)

0 Thành viên và 1 Khách đang xem chủ đề.

server360

  • Administrator
  • Hero Member
  • *****
  • Bài viết: 3150
  • Số Lần: +72/-0
Cấu trúc của một đám mây nguồn mở
« vào: Tháng Mười Một 21, 2013, 09:30:25 AM »
Đ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).
1.      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.
 
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.
2.      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).
 
Hình 3. Khung nhìn mức cao của Open vSwitch với các giao diện ảo, 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.
3.      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.
4.      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.
5.      Đ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.


 

Copyright © VietNetwork.Vn