Giới thiệu
Điện toán đám mây đang trở thành một phần quan trọng trong ngành công nghiệp máy tính, cho phép tài nguyên tính toán được sử dụng như một tiện ích Mô hình này không chỉ mang lại sự linh hoạt trong việc phân phối tài nguyên mà còn tối ưu hóa hiệu quả sử dụng tài nguyên theo đơn vị Hệ thống điện toán đám mây có thể bao gồm nhiều cụm máy tính, cho phép các ứng dụng được di dời giữa các cụm này nhằm nâng cao hiệu suất sử dụng tài nguyên Việc di dời ứng dụng, đặc biệt là di dời động toàn bộ máy ảo, là một lĩnh vực nghiên cứu quan trọng, mặc dù kích thước máy ảo thường rất lớn Phương pháp di dời ứng dụng bằng kỹ thuật lưu ảnh phục hồi (checkpointing) chưa được phát triển đầy đủ, nhưng hứa hẹn sẽ tiết kiệm thời gian và dung lượng đĩa, với ảnh di dời có kích thước nhỏ giúp giảm thiểu tài nguyên tiêu tốn.
Điện toán đám mây đã mở ra những thách thức mới trong việc xây dựng phần mềm, đặc biệt là về khả năng co giãn kích thước khi hệ thống bao gồm nhiều thành phần không đồng nhất và phân bố khác nhau Việc di dời ứng dụng không chỉ giúp giải phóng tài nguyên máy ảo mà còn tiết kiệm năng lượng và giảm thiểu nhiệt tỏa ra từ các máy vật lý ít tải Nghiên cứu về lưu ảnh ứng dụng ở mức hệ thống kết hợp với các hệ thống xử lý sự kiện trong môi trường phân bố đã cho phép di chuyển ứng dụng một cách linh hoạt trong thời gian thực Hệ thống hướng sự kiện phân bố đóng vai trò quan trọng trong việc phát triển hệ thống Event-based checkpointing (EBC) nhằm hỗ trợ việc di dời ứng dụng trên nền điện toán đám mây.
Kiến trúc hệ thống hương được thiết kế với tính mở nhằm hỗ trợ các dịch vụ quản lý nâng cao như lập lịch và cân bằng tải Việc quản lý chi tiết đến từng máy ảo cho phép kiểm soát môi trường thực thi bên trong máy ảo, nơi mà các công vụ quản lý cấp độ máy ảo không thể can thiệp Đề tài này đóng góp vào hai khía cạnh quan trọng: a) Kháng lỗi, cung cấp cơ sở thực tiễn cho phép chạy ứng dụng trong thời gian dài ngay cả khi có lỗi xảy ra; b) Kiến trúc, nhằm tối ưu hóa hiệu suất và khả năng mở rộng của hệ thống.
Phù hợp triển khai trên nền điện toán đám mây: xây dựng kiến trúc mềm dẻo giữa các kết nối
Kiến trúc mở: hỗ trợ những dịch vụ ở cấp cao hơn
Chi phí thấp là một lợi thế lớn, vì không yêu cầu tính đồng bộ hóa giữa các thành phần Mô hình quản lý môi trường thực thi trên máy ảo cung cấp một cái nhìn thực tế về khả năng quản lý trong môi trường điện toán đám mây.
Nâng cao hiệu quả sử dụng tài nguyên bằng cách cân bằng tải cho các ứng dụng có nhiều tài nguyên thực thi và sử dụng năng lượng hiệu quả, gom các tác vụ trên máy vật lý rỗi Đồng thời, phát triển công cụ quản lý tài nguyên cho các cụm máy và từng máy ảo.
Phần còn lại của luận văn được cấu trúc như sau: Chương 2 sẽ trình bày các đặc điểm của điện toán đám mây, trong khi đó, chương tiếp theo sẽ giới thiệu mô hình và phép toán kell-m, nhằm biểu diễn hệ thống hướng sự kiện phân bố.
Trong Chương 4, chúng tôi xem xét các phương án di dời và mô tả hệ thống EBC trong Chương 5 Chương 6 tập trung vào việc kiểm tra và đánh giá hệ thống đã được xây dựng Cuối cùng, luận văn kết thúc với các kết luận trong Chương 7 và kiến nghị cho các nghiên cứu tiếp theo trong Chương 8.
Điện toán đám mây
Dịch vụ hạ tầng IaaS
Dịch vụ hạ tầng cung cấp tài nguyên tính toán cho người dùng thông qua các máy ảo được triển khai trên máy vật lý Mặc dù vẫn có thể cung cấp tài nguyên ở dạng vật lý, nhưng ảo hóa mang lại nhiều lợi ích hơn, cho phép chia nhỏ và phân bổ các tài nguyên vật lý hiệu quả hơn.
Dịch vụ phần mềm (SaaS)
Dịch vụ (service) Dịch vụ nền tảng (PaaS)
Tính toán Mạng Lưu trữ
Dịch vụ hạ tầng (IaaS) Ứng dụng
16 phát hay thay đổi động tùy theo yêu cầu Dịch vụ hạ tầng là một dạng cung cấp máy chủ nhưng ở dạng trừu tượng hóa
Hình 2 Dịch vụ hạ tầng
Dịch vụ hạ tầng cung cấp phần cứng và quản lý các thiết bị này với nhiều mức giá tương ứng với chất lượng dịch vụ Tài nguyên lưu trữ, kết nối mạng và năng lực tính toán được cung cấp dưới dạng dịch vụ, cho phép người dùng linh hoạt trong việc chi trả chỉ cho những tài nguyên cần thiết cho ứng dụng của họ Chất lượng dịch vụ về băng thông, bộ nhớ và không gian lưu trữ có nhiều mức giá khác nhau, tạo điều kiện cho người dùng lựa chọn phù hợp Đồng thời, nhà cung cấp dịch vụ không ngừng cải tiến hạ tầng để nâng cao tính cạnh tranh và hiệu quả sử dụng tài nguyên.
Điện toán đám mây công cộng (public cloud) và điện toán đám mây cá nhân (private cloud)
Khi một hệ thống điện toán đám mây được xây dựng và chia sẻ cho nhiều người dùng cùng sử dụng, chúng ta gọi đó là điện toán đám mây công.
Điện toán đám mây cá nhân là hệ thống được thiết kế đặc biệt cho một mục đích sử dụng riêng, không phải cho cộng đồng rộng rãi Tuy nhiên, hệ thống này cần có kích thước đủ lớn để khai thác tối đa lợi ích của điện toán đám mây.
Tính sẵn sàng Sẵn sàng trong ngữ cảnh sử dụng bao nhiêu-chi trả bấy nhiêu
Sẵn sàng nội bộ cho một công ty hoặc tổ chức
Tính đại chúng Có Không
Bán tính toán tiện ích (utility computing)
Phân phối/bán trong nội bộ
Phần mềm quản lý đám mây mã nguồn mở
Trong một phần mềm quản lý đám mây mã nguồn mở, chúng ta có thể xác định
6 thành phần thường gặp [4] với kiến trúc chung như mô tả trong hình 3
Máy vật lý gồm cấu hình phần cứng và hệ điều hành
Chương trình quản lý máy ảo VMM
Kho lưu trữ ảnh các đĩa cứng của các máy ảo
Front-end để giao tiếp với người dùng
Chương trình quản lý điện toán đám mây
Thành phần đầu tiên của máy vật lý bao gồm cấu hình phần cứng và hệ điều hành cài đặt Cấu hình phần cứng cần có bộ vi xử lý hỗ trợ tính năng virtualization để triển khai full-virtualization Nếu không, hệ thống chỉ có thể hoạt động ở mức paravirtualization Hệ điều hành trong dự án đám mây mã nguồn mở cũng rất quan trọng, vì nó phải tương thích với các thành phần bên dưới của hệ thống Các phần mềm quản lý đám mây thương mại thường được xây dựng trên nền tảng này.
Các dự án phần mềm quản lý đám mây mã nguồn mở cần hỗ trợ xây dựng trên nền tảng sẵn có với 18 phần cứng riêng, bao gồm nhiều cấu hình phần cứng khác nhau.
Hình 3 Kiến trúc chung của phần mềm quản lý đám mây
Các thành phần kết nối mạng đảm nhận các dịch vụ quan trọng như DHCP và DNS, đồng thời kết nối các máy vật lý Ngoài ra, kết nối mạng còn bao gồm các kết nối giữa các máy ảo và cầu nối ảo, cho phép kết nối giữa các máy ảo với nhau và với các máy vật lý một cách trực tiếp.
Các chương trình quản lý máy ảo phổ biến bao gồm Xen, KVM, VirtualBox và VMWare, cung cấp nền tảng cho việc chạy máy ảo Những phần mềm này được xây dựng dựa trên thư viện libvirt, nhưng việc trừu tượng hóa máy ảo không hoàn hảo và cần tinh chỉnh cấu hình Vì vậy, phần mềm quản lý đám mây thường hỗ trợ nhiều chương trình quản lý máy ảo khác nhau.
Kho lưu trữ ảnh đĩa cứng máy ảo là cần thiết để vận hành nhiều máy ảo trên hệ thống đám mây Để quản lý hiệu quả, cần có một kho để sao chép đĩa cứng máy ảo khi cần thiết Bên cạnh đó, các gói phần mềm dịch vụ cũng có thể được lưu trữ trong kho này, giúp dễ dàng thêm vào các đĩa cứng ảo khi cần.
Frontend là phần quan trọng giúp người dùng phần mềm quản lý máy ảo tương tác với hệ thống, lập lịch và thiết lập các thông số cho các máy ảo một cách hiệu quả.
Chương trình quản lý máy ảo nhận thông tin đầu vào từ người dùng qua giao diện front-end, giúp sắp xếp và thiết lập các thành phần cần thiết Sau đó, nó gửi yêu cầu để tạo và thực thi máy ảo, đồng thời điều phối các thành phần trong hệ thống.
Các phần mềm quản lý đám mây mã nguồn mở bao gồm Eucalyptus, OpenNebula và Nimbus Dưới đây là bảng so sánh kiến trúc của các phần mềm quản lý đám mây này.
Những cài đặt hệ thống
Cấu hình sẵn bởi người quản trị
Các thông số phần lớn đều có thể cấu hình
Tùy vào các cấu hình
Phần mềm quản lý máy ảo
Những đặc điểm Quản lý hệ thống qua giao diện web hướng đến dịch vụ điện toán đám mây công cộng
Hiện thực mô phỏng Amazon EC2 [12]
Khả năng tùy biến cao cho dịch vụ điện toán đám mây cá nhân
Cho phép tùy chỉnh có giới hạn
Môi trường tính toán sử dụng nhiều nhà cung cấp dịch vụ
2.4.1 Những giới hạn khi chỉ sử dụng dịch vụ của một nhà cung cấp
Một nhà cung cấp dịch vụ thường có những giới hạn nhất định về số lượng và chất lượng dịch vụ, không đảm bảo cho khái niệm mở rộng không giới hạn Mặc dù khái niệm không giới hạn về kích thước có thể không thực tế, vẫn tồn tại nhiều giới hạn khác Mỗi nhà cung cấp cam kết chất lượng dịch vụ tương ứng với các mức giá khác nhau Chi phí sử dụng dịch vụ được tính dựa trên “dung lượng” của các thông số như CPU, bộ nhớ RAM và kích thước dữ liệu truyền qua mạng, thay vì chỉ dựa vào số lượng.
Mỗi nhà cung cấp dịch vụ nhắm đến đối tượng khách hàng khác nhau, dẫn đến sự khác biệt về khả năng và chất lượng dịch vụ Ví dụ, các hãng phát triển cơ sở dữ liệu cung cấp dịch vụ chuyên nghiệp, phù hợp cho ứng dụng xử lý dữ liệu, trong khi các nhà cung cấp dịch vụ cho thị trường game hoặc ứng dụng văn phòng lại có đặc thù riêng Đối với các ứng dụng trong môi trường doanh nghiệp, yêu cầu về chức năng thường phức tạp hơn, và việc triển khai trên các hạ tầng khác nhau giúp tận dụng tối đa các ưu thế của từng dịch vụ.
2.4.2 Môi trường điện toán đám mây trên nhiều nhà cung cấp dịch vụ Ở góc độ người dùng, sự kết hợp phù hợp giữa các dịch vụ có thể đem lại một hiệu quả về kinh tế và khả năng tính toán phù hợp Ví dụ như dịch vụ của nhà cung cấp dịch vụ có mức giá cao nhưng dung lượng tính toán lớn tại thời điểm hệ thống thực thi với khối lượng tải lớn Trong những thời điểm tải hệ thống nhỏ thì có thể chuyển sang một nhà cung cấp với mức giá thấp Để đảm bảo việc thực thi ứng dụng không bị gián đoạn, hệ thống mà ứng dụng được triển khai phải tương thích
21 với môi trường tính toán xây dựng trên việc kết hợp môi trường điện toán đám mây cung ứng bởi nhiều nhà cung cấp dịch vụ
Việc ứng dụng công nghệ máy ảo nâng cao hiệu quả sử dụng tài nguyên và giảm sự khác biệt giữa các hạ tầng phần cứng Điều này tạo điều kiện thuận lợi cho việc kết hợp môi trường tính toán từ nhiều nhà cung cấp dịch vụ khác nhau Do đó, bài viết tập trung vào triển khai môi trường điện toán đám mây đa trang (multi-site), trong đó mỗi trang được định nghĩa là một cụm máy tính của một nhà cung cấp dịch vụ.
2.4.3 Những mô hình tính toán kết hợp nhiều nhà cung cấp dịch vụ
Khái niệm "sky computing" đề cập đến việc kết hợp các nhà cung cấp dịch vụ điện toán đám mây khác nhau trong một hệ thống Nghiên cứu đầu tiên từ phòng thí nghiệm ACIS và trường đại học Florida tập trung vào việc phát triển một giải thuật định hướng (routing) để chuyển dữ liệu giữa hai điểm trong các cụm máy tính khác nhau Giải pháp này cho phép các nút tính toán của các nhà cung cấp dịch vụ điện toán đám mây giao tiếp với nhau, nhưng yêu cầu một kiến trúc kết nối bổ sung trên mạng hiện có Điều này có nghĩa là dữ liệu cần trải qua một bước trung gian trước khi được truyền tải qua mạng thực, dẫn đến chi phí phát sinh cho tất cả các giao tiếp.
Thông tin về kiến trúc mạng là cần thiết để phát triển các thành phần định hướng trong hệ thống Một khái niệm quan trọng liên quan đến địa chỉ thực là địa chỉ khác, và việc quản lý các địa chỉ này cần phải xem xét mô hình địa chỉ tĩnh và địa chỉ động trong kiến trúc mạng.
Việc chồng lên một kết nối khác trong môi trường Internet giữ nguyên các thành phần phía dưới, cho phép quản lý máy ảo thông qua chương trình VMM Luận văn này hướng đến việc xây dựng một hệ thống đa nhà cung cấp dịch vụ với mục tiêu tối ưu hóa việc sử dụng lại kết nối trực tiếp giữa hai nút tính toán, nhằm tận dụng những cải tiến từ hệ thống hiện có Bên cạnh đó, hệ thống cũng cho phép can thiệp ở mức môi trường thực thi máy ảo, một khía cạnh mà các phần mềm quản lý điện toán đám mây hiện tại vẫn chưa khai thác triệt để.
2.4.4 Khái niệm điện toán đám mây trong đề tài
Vấn đề quản lý máy ảo trong các chương trình quản lý điện toán đám mây
Hình 4 Môi trường điện toán đám mây trong đề tài
2.5 Vấn đề quản lý máy ảo trong các chương trình quản lý điện toán đám mây
Các phần mềm quản lý máy ảo hiện nay chủ yếu sử dụng dịch vụ từ chương trình quản lý máy ảo (VMM) Chúng thực hiện quản lý máy ảo bằng cách gọi các hàm do VMM cung cấp Những hàm này thường bao gồm thông tin quan trọng về hiệu suất quản lý máy ảo.
Sử dụng CPU, dung lượng bộ nhớ và băng thông truyền nhận dữ liệu của thiết bị kết nối mạng NIC chỉ cung cấp thông tin phần cứng, nhưng không thể hiện đầy đủ môi trường thực thi bên trong máy ảo.
Hình 5 Thành phần quản lý máy ảo trong các công cụ quản lý điện toán đám mây
Quản lý môi trường thực thi trong điện toán đám mây khác biệt rõ rệt so với các mô hình hệ phân bố truyền thống Trong các hệ thống phân bố trên máy vật lý, chương trình quản lý được cài đặt trực tiếp vào máy và có thể truy xuất dễ dàng thông tin về môi trường thực thi, như số lượng tiến trình, trạng thái của chúng, dung lượng bộ nhớ và địa chỉ IP Ngược lại, trong điện toán đám mây, thông tin mà chương trình quản lý có thể truy xuất chủ yếu chỉ là các tác vụ cơ bản như tắt, mở hoặc khởi động lại máy ảo, cùng với một số thông tin thống kê hạn chế.
Việc giao tiếp tương ứng hỗ trợ tính năng tháo lắp nóng (hotPlug) trong quản lý máy ảo gặp nhiều hạn chế do chức năng của chương trình Sự bổ sung khả năng quản lý chưa đạt đến mức độ môi trường thực thi trên máy ảo là một thách thức Mặc dù các chương trình quản lý máy ảo cung cấp cơ chế can thiệp thông qua việc gắn các đoạn chương trình vào thiết bị lưu trữ ảo, nhưng những phương án này vẫn có nhiều giới hạn và không phải là giải pháp tổng quát.
Việc nghiên cứu quản lý môi trường từ bên trong máy ảo là rất cần thiết để phát triển các giải pháp hiệu quả hơn.
Hệ thống hướng sự kiện phân bố
Hệ thống hướng sự kiện
3.1.1 Hệ thống hướng dữ liệu và hệ thống hướng sự kiện
Tương tác giữa các component bằng cách phát và nhận các thông báo sự kiện
Sự kiện trong hệ thống có thể là bất kỳ hiện tượng nào được quan tâm, chẳng hạn như sự xuất hiện của một người được ghi nhận bởi hệ thống cảm biến Hệ thống này có nhiệm vụ theo dõi các đối tượng trong phạm vi quan sát và sẽ phản ứng khi phát hiện sự xuất hiện của người Các thành phần trong hệ thống sẽ được thông báo về sự kiện trong vùng quan sát của nó, từ đó kích hoạt các hàm xử lý sự kiện tương ứng Phương pháp này khác với mô hình gửi yêu cầu/đáp ứng truyền thống, mang đến một cách tiếp cận mới về giao tiếp giữa các thành phần trong hệ thống.
Hình 6 Mô hình yêu cầu/đáp ứng
Dịch vụ thông báo sự kiện, hay hệ thống PubSub (publish/subscribe), đóng vai trò trung gian trong hệ thống hướng sự kiện, kết nối các thành phần của hệ thống Hệ thống này chuyển thông báo từ người phát tin (publisher) đến các thuê bao (subscriber) đã đăng ký các sự kiện mà họ quan tâm thông qua biểu thức trong đăng ký thuê bao.
Hình 7 Mô hình hệ thống PubSub với người phát tin và thuê bao
Phát sự kiện Đăng kí thuê bao
Yêu cầu [Nguồn, đích] Đáp ứng
Hệ thống hướng sự kiện (PubSub) có điểm mạnh nổi bật là không yêu cầu ràng buộc chặt chẽ giữa người phát tin và thuê bao Trong giao tiếp thông báo sự kiện, người phát tin không cần quan tâm đến thuê bao nhận sự kiện, và ngược lại, thuê bao cũng không cần biết ai phát đi thông tin Sự phân tách này giúp phá vỡ ràng buộc giữa các đối tượng giao tiếp, cho phép thuê bao nhận thông điệp dựa trên sự quan tâm của họ đối với thông tin trong sự kiện Các thành phần trong hệ thống không được thiết kế để tương tác cụ thể với nhau, từ đó tách biệt tính năng giao tiếp và xử lý tính toán Điều này có nghĩa là sự kiện được gửi và nhận một cách độc lập; sau khi nhận được thông điệp, thuê bao mới tiến hành xử lý tính toán.
3.1.2 Hệ thống hướng sự kiện thuê bao theo nội dung
Có nhiều phương pháp để đánh giá mức độ quan tâm của thuê bao đối với sự kiện Trong nghiên cứu này, sự kiện được xem xét từ góc độ khả năng diễn đạt Một mô hình đăng ký thuê bao có khả năng diễn đạt mạnh mẽ khi cho phép thuê bao so trùng và chỉ tiếp nhận những sự kiện mà họ thực sự quan tâm.
Thuê bao theo chủ đề là mô hình thông báo được tổ chức theo nhóm, cho phép người dùng đăng ký một chủ đề cụ thể và nhận tất cả sự kiện liên quan Mô hình này hoạt động như các kênh truyền thông kết nối người phát tin với các thuê bao quan tâm đến cùng một chủ đề Ví dụ, trong hình 8, có hai kênh truyền: kênh “chủ đề 1” kết nối một người phát tin với ba thuê bao quan tâm, trong khi kênh còn lại kết nối một người phát tin với một thuê bao của chủ đề 2 Hệ thống thuê bao theo chủ đề được triển khai trên nhiều nền tảng như iBus và CORBA Notification Service.
Hệ thống hướng sự kiện thuê bao theo chủ đề có điểm yếu là khả năng diễn đạt hạn chế Phân chia chủ đề theo hình cây khiến người dùng khi đăng ký nhận một chủ đề sẽ nhận tất cả sự kiện thuộc các chủ đề con Điều này có thể gây bất tiện khi người dùng chỉ quan tâm đến một phần sự kiện trong chủ đề, nhưng vẫn phải nhận toàn bộ thông tin Chẳng hạn, nếu người dùng đăng ký chủ đề A, họ sẽ nhận tất cả sự kiện từ các chủ đề A, B, C và D Do đó, người phát tin cần thực hiện phân loại chủ đề một cách chính xác.
“dán nhãn” chủ đề tương ứng của sự kiện trước khi phát sự kiện đi
Hình 9 Các chủ đề phân cấp hình cây
Thuê bao theo nội dung (content-based) là hình thức thuê bao mà người dùng nhận thông tin dựa trên việc so sánh các thuộc tính của sự kiện với các điều kiện đã thiết lập Điều này có nghĩa là sự so trùng diễn ra khi tất cả các thuộc tính của sự kiện đáp ứng các tiêu chí mà người dùng mong muốn.
Cách thuê bao này cho phép diễn đạt đầy đủ nội dung sự kiện với độ phức tạp cao, tùy thuộc vào các phép toán so trùng mà hệ thống hỗ trợ Tuy nhiên, các phép toán so trùng thường chỉ giới hạn ở các phép hợp các biểu thức Điểm nổi bật của thuê bao này là tính linh hoạt, cho phép người dùng tự do đăng ký và tùy biến các điều kiện so trùng mà không ảnh hưởng đến bản chất của nội dung sự kiện.
Có nhiều loại thuê bao khác nhau, nhưng việc áp dụng tiêu chí để phân loại sự kiện giúp giảm bớt những ràng buộc chặt chẽ theo chủ đề Một số tiêu chí có thể được liệt kê bao gồm:
Thuê bao theo phân loại (type-based) chia theo dạng gắn các tag vào sự kiện mà không ràng buộc chặt chẽ về phân cấp
Thuê bao theo ngữ nghĩa (concept-based): khái quát hóa ngữ nghĩa các thuộc tính và phân loại sự kiện ở mức độ trừu tượng này
Thuê bao theo địa phương: giới hạn thuê bao theo khu vực
Đề tài này không nghiên cứu các dạng thuê bao khác mà chỉ tập trung vào thuê bao theo nội dung, dựa trên hai tiêu chí chính: (i) tính tùy biến của biểu thức khi đăng ký thuê bao và (ii) khả năng thay đổi động trong quá trình thực thi Do đó, các phần tiếp theo sẽ sử dụng khái niệm hệ thống hướng sự kiện để chỉ các hệ thống thuê bao theo nội dung, với giả định rằng hình thức thuê bao là theo nội dung.
Những phần mềm hiện thực DEBs
Các phần mềm hiện thực DEBs thường được phát triển bằng ngôn ngữ Java, tận dụng tính năng Object serialization và hệ thống tin nhắn JMS, hoặc bằng C/C++ Những phần mềm này đại diện cho các hệ thống hướng sự kiện thuê bao theo nội dung.
Avis hiện thực hóa hệ thống Elvin, một hệ thống hướng sự kiện tập trung, không phải hệ thống phân tán Việc tích hợp Avis với các API giúp minh họa các tác vụ phát đi và nhận thông điệp giữa người phát tin và thuê bao, tương tự như trong cả hệ thống hướng sự kiện tập trung và DEBs Điểm khác biệt là cơ chế hiện thực dịch vụ thông báo thông qua hệ thống PubSub, với một hoặc nhiều nút trung gian chịu trách nhiệm chuyển tiếp sự kiện.
API của Avis bao gồm chức năng đăng ký thuê bao với thuộc tính Greeting dưới dạng chuỗi ec -e elvin://public.elvin.org "string (Greeting)" và phát đi sự kiện với ep -e elvin://public.elvin.org Hai tác vụ cơ bản này tương tự như trong DEBs, bao gồm việc phát tin và nhận sự kiện.
Siena là một hệ thống phân phối thông tin dựa trên nội dung, bao gồm các nút trung gian (DEBs broker) và các điểm hoạt động như người phát tin và thuê bao.
Nút trung gian trong hình minh họa được thể hiện bằng tên gốc tiếng Anh để làm rõ vai trò của nó, bao gồm: (i) chức năng trung gian, định hướng và tiền xử lý, (ii) hoạt động trong hệ thống phân phối sự kiện (DEBs).
Hình 10 Tổ chức hệ thống siena gồm các nút trung gian và các nút đầu cuối
Rebeca [18] là một hệ thống DEBs thuê bao theo nội dung, tương tự như Siena Hệ thống này bao gồm các nút trung gian và điểm đầu cuối, trong đó các nút trung gian có khả năng thiết lập và thay đổi kết nối với các nút trung gian khác.
Common API là chuẩn API được hỗ trợ bởi các phần mềm thực hiện DEBs, bao gồm các hàm như subscribe(filter; callback; ttl) để thực hiện đăng ký, unsubscribe(subscription) để hủy đăng ký, và publish(event) để phát sự kiện Các API này chỉ cung cấp tên hàm, tham số và giá trị trả về mà không có đặc tả kiểu dữ liệu.
Trong hàm subscribe(), filter đại diện cho biểu thức đăng ký sự kiện mà thuê bao quan tâm Khi sự kiện phù hợp với biểu thức đăng ký, hàm callback sẽ được thực thi Tham số ttl (time-to-live) xác định thời gian tồn tại của đăng ký thuê bao trong hệ thống Kết quả của việc đăng ký là một subscription, có thể là một đối tượng tùy thuộc vào hệ thống cụ thể Để hủy đăng ký, người dùng gọi hàm unsubscribe() với tham số là subscription được trả về từ lần đăng ký trước đó.
Khi một sự kiện được phát đi qua hàm publish(), nó sẽ được đưa vào hệ thống thông báo sự kiện PubSub Sự kiện này có thể được chuyển đến các thuê bao nếu chúng đáp ứng các điều kiện của biểu thức filter.
Phép toán kell-m cho hệ thống hướng dữ liệu phân bố
Phép toán kell-m là một nhánh trong lĩnh vực toán luận lý thời gian (Temporal Logics), phát triển trên hệ thống DEBs, với khả năng mô tả hệ thống phân bố tại một thời điểm Kế thừa từ toán luận lý thời gian, toán phân tán thời gian (Branching Time Logics) tập trung vào mối tương quan giữa các thành phần hơn là cái nhìn tổng quát về hệ thống, trái ngược với Linear Temporal Logics Phép toán kell-m, được phát triển từ toán mô tả tiến trình, thể hiện rõ ngữ nghĩa tương tác giữa một tiến trình và môi trường xung quanh, phù hợp để mô tả Common API của hệ thống DEBs Trong đề tài, phép toán kell-m cũng được áp dụng để mô tả hệ thống và giải thích về thời gian trong Chương 6, tuy nhiên, cần có sự chứng minh toán học cho lý giải này, mà hiện tại đề tài chưa hoàn thiện.
Hình 11 Cơ sở nền tảng của phép toán kell-m
Modal Logics Temporal Logics Branching Time Logics à-calculus πà - calculus Temporal logic with modalities specific to π-calculus kà Temporal logic with modalities specific to kell-m
Phép toán kell-m do Blanco phát triển dựa trên phép toán kell cho hệ thống phân bố, nhằm cung cấp một chuẩn chung thông qua việc mô tả kết quả nghiên cứu về Common API cho các hệ thống hướng dữ liệu phân bố Nghiên cứu cho thấy rằng các hệ thống hiện tại có thể được mô tả bằng Common API, mặc dù đây chỉ là một API trừu tượng, phản ánh các hoạt động của hệ thống Blanco đã mở rộng phép toán kell bằng cách bổ sung các phép toán mới liên quan đến xử lý sự kiện, cho phép biểu diễn Common API thông qua phép toán kell Ông cũng đã thực hiện các thử nghiệm chuyển đổi một số DEBs hiện có theo chuẩn Common API, từ đó mô tả hệ thống bằng phép toán kell-m, với cơ sở nền tảng được phân loại theo sơ đồ 2.
3.3.2 Các khái niệm cơ sở
Tiến trình được kí hiệu là P đại diện cho một tiến trình trong phép toán kell-m Tiến trình null được kí hiệu là 0
Phép | là sự kết hợp song song hai tiến trình, tức là hai tiến trình thực thi song song với nhau
P 1 | P 2 Tiến trình P 1 kết hợp song song với tiến trình P 2
Một định danh cục bộ được gọi là restricted name
Phạm vi định danh: new a P
Khởi tạo một định danh a được sử dụng trong tiến trình P
2 Các thuật ngữ và chú giải giữ nguyên gốc ngôn ngữ tiếng Anh của tác giả
Phạm vi định danh cho phép kết hợp hai tiến trình P1 và P2, đảm bảo rằng giao tiếp chỉ diễn ra giữa hai tiến trình trong cùng một cặp Cú pháp được sử dụng là new a (P1|P2) | P3.
Có nhiều cách để khai báo định danh mới như new a, b, c P thay cho new a new b new c P Ngoài ra, bạn cũng có thể khai báo một chuỗi các định danh mới bằng cách sử dụng new P thay cho new c1, c2, …, cn P.
Trong ngữ cảnh này, "trigger" có thể hiểu là bẫy sự kiện, nhưng để tránh nhầm lẫn, chúng ta sẽ gọi nó là sự kiện Mẫu sự kiện này sẽ dẫn đến một tiến trình thực thi, ký hiệu là P, diễn ra sau khi nhận được sự kiện, cụ thể là hành động đọc (read action) sẽ được làm rõ hơn ở phần sau.
Phát (write action) trên kênh truyền a một định danh hay tiến trình biểu diễn như sau
Nếu việc phát không có giá trị nào được truyền đi thì được biểu diễn là hay đơn giản là
Phép nhận (read action) được biểu diễn thông qua sự kiện (trigger) Mẫu sự kiện xác định việc nhận xảy ra trên kênh truyền nào
Việc nhận xảy ra trên kênh truyền a và kết quả của giao tiếp là tiến trình P được xác định trong sự kiện (ở đây là P)
Mẫu sự kiện trong phép nhận là một phép phát, và khi mẫu này thỏa mãn biểu thức “phép phát”, sẽ xảy ra một giao tiếp trên tiến trình P được xác định trong sự kiện Sự kiện sẽ tiêu biến khi có sự kết hợp tương xứng giữa một phép phát và một phép đọc, lúc này sự kiện được gọi là sự kiện phản hồi (recurrent trigger).
K[P] là một định danh cho tiến trình thực thi trong kell, có thể biểu diễn không gian vật lý, vùng quản lý trừu tượng hoặc sự tạo thành của một module Kell được sử dụng trong các phép toán chứng minh cơ sở cho phép toán kell-m nâng cao Đề tài này áp dụng kết quả từ phép toán kell-m nâng cao với ít can thiệp ở mức phép toán kell, do đó các biểu diễn và thuật ngữ liên quan đến phép toán kell trong đề tài là cách gọi rút gọn của phép toán kell-m nâng cao.
Fresh tạo định danh toàn cục (unrestricted name) không thể khởi tạo tương ứng với định danh cục bộ thông qua new Blanco đã giới thiệu trong nghiên cứu của mình rằng fresh c1, c2, …, cn P.
Định danh cục bộ, nếu dịch đúng nghĩa, là định danh hạn chế; tuy nhiên, phép fresh có khả năng tạo ra định danh có thể thấy ở phạm vi toàn cục Do đó, trong bài viết này, chúng tôi sử dụng thuật ngữ định danh toàn cục và định danh cục bộ để đơn giản hóa việc đọc các thuật toán mà không ảnh hưởng đến tính chính xác của phép toán Các định danh cục bộ không được khai báo lại trong phạm vi của tiến trình, điều này đã được thỏa mãn trong các công thức sẽ được giới thiệu sau.
Thủ tục procedure and biến var
Khai báo định nghĩa thủ tục pname với các tham số là một chuỗi các định danh, có thân thủ tục P Thủ tục trong phép toán kell được thực hiện thông qua các tiến trình.
Semaphores dùng để kiểm soát việc truy xuất tài nguyên chia sẻ, thường là các biến hay các kênh truyền
Một định danh semaphore được khởi tạo bởi một lệnh phát (write action)
Một lệnh nhận (read action) dùng để truy xuất tương hỗ (exclusive access) tới tài nguyên được bảo vệ bởi semaphore sem
Sau khi tiến trình hoàn tất, một lệnh phát (write action) được gọi
Các kiểm tra điều kiện
Kiểm tra điều kiện if biểu diễn như sau
Trong đó, biểu thức luận lý kiểm tra được xây dựng như sau
Giá trị luận lý cơ sở true(rc) false(rc) Phủ định của biểu thức luận lý not
Các phép toán luận lý and, or tương tự and or
Xem xét ví dụ biểu thức luận lý so sánh hai toán tử, kết quả của biểu thức luận lí biểu diễn bởi định danh order:
, có thể được biểu diễn đơn giản hóa như sau
Danh sách trong lập trình được hiểu như một cấu trúc dữ liệu cơ bản, trong đó hàm empty() được sử dụng để khởi tạo một danh sách rỗng, trong khi hàm cons() cho phép thêm một phần tử vào danh sách đã có.
, , , , Toán tử được sử dụng tắt thay cho cons( )
Cách biểu diễn thường được sử dụng về sau
, với tiến trình ht(l) trả về cả phần tử đầu tiên và phần tử cuối cùng của danh sách
Các định danh và các tiến trình được đóng gói trong các module được biểu diễn như sau:
3.3.4 Biểu diễn kell-m cho Common API
The kell-m representation, specifically in the context of advanced kell-m, is defined for the Common API of DEBs with the following process: common_api(subscribe, unsubscribe, publish, deliver) This involves a fresh semaphore (sem()) and a variable subscription list (subsc := [ ]), which is utilized in the subscribe function that takes parameters such as filter, callback, ttl, and rc The process also includes a fresh subscription (s) that is created with the specified filter, callback, and ttl.
| sem() (subsc :=s @cons(s, *subsc)) ▷ (rc(s) | sem())
| unsubscribe(s) ◇ ( sem() (subsc :=s @del(*subsc, s)) ▷ sem()
| publish(e) ◇ ( foreach s in *subsc do @s(deliver, e) done
} process subscription(notify, filter, callback, ttl) { notify(deliver, event) ◇ ( if (@filter(event) and @ttl()) then
} deliver(callback, event) ◇ @callback(event)
Giải thuật 1 Biểu diễn kell-m cho Common API
Di dời ứng dụng trên điện toán đám mây
Kĩ thuật lưu ảnh kháng lỗi và di dời tiến trình
Kỹ thuật kháng lỗi được phát triển để đảm bảo khả năng tiếp tục thực thi mà không cần khởi động lại từ đầu trong môi trường thường xuyên xảy ra lỗi Đặc biệt trong các tính toán khoa học, thời gian thực thi có thể kéo dài hàng tháng, dẫn đến nguy cơ lỗi cao Nếu phải khởi động lại từ đầu khi xảy ra lỗi, quá trình thực thi trước đó sẽ trở nên vô nghĩa, và trong môi trường có tần suất lỗi cao, việc khởi động lại ứng dụng có thể diễn ra liên tục, khiến cho ứng dụng không bao giờ hoàn tất và không đạt được kết quả mong muốn.
Lưu ảnh phục hồi là một kỹ thuật kháng lỗi hiệu quả, dễ triển khai và đã được ứng dụng rộng rãi trong thực tế Kỹ thuật này cho phép ứng dụng ghi lại các tiến trình và thông tin quan trọng lên đĩa cứng, từ đó giúp phục hồi ứng dụng về trạng thái gần nhất khi có lỗi xảy ra Quá trình lưu ảnh phục hồi có thể diễn ra ở nhiều cấp độ, từ việc can thiệp trực tiếp vào ứng dụng đến mức hệ thống hoàn toàn trong suốt với ứng dụng Điều này có nghĩa là lập trình viên không bị ràng buộc trong quá trình phát triển, trong khi ứng dụng vẫn có khả năng kháng lỗi hiệu quả Việc lưu ảnh phục hồi ở mức hệ thống mang lại hiệu suất cao cho ứng dụng trong thực tế.
Kỹ thuật lưu ảnh kháng lỗi cho phép ghi lại trạng thái của một tiến trình Sau đó, ảnh của tiến trình này có thể được chuyển đến một vị trí mới Tại vị trí mới, tiến trình sẽ được phục hồi và tiếp tục thực thi, đây chính là nguyên tắc của việc di dời tiến trình.
Di dời động máy ảo
4.2.1 Những vấn đề của di dời tiến trình
Di dời tiến trình đã được nghiên cứu từ rất lâu, bùng nổ vào khoảng thập kỉ
Mặc dù đã được phát triển từ năm 1980, ứng dụng di dời vẫn chưa được áp dụng rộng rãi trong thực tiễn Việc di dời ứng dụng cần phải thực hiện một cách liên tục để đảm bảo tiến trình không bị gián đoạn Tuy nhiên, ngoài dữ liệu và tính toán, ứng dụng còn phải đối mặt với nhiều ràng buộc liên quan đến môi trường thực thi, như địa chỉ IP và các dịch vụ cần thiết Các kênh giao tiếp I/O và dữ liệu cũng đặt ra những yêu cầu về trạng thái kết nối, vùng đệm dữ liệu tạm thời và tính nhất quán của dữ liệu, tạo ra nhiều thách thức trong quá trình di dời tiến trình.
Vấn đề phụ thuộc sót lại
Vấn đề phụ thuộc sót lại (residual dependencies) xảy ra khi một phần trạng thái của tiến trình được giữ lại trên nguồn hoặc các nút trung gian trong quá trình di dời Điều này thường xuất hiện khi chuyển tiếp giữa hai kỹ thuật thực hiện kiểm tra chậm hoặc hiệu ứng nhằm đạt được tính trong suốt trên kênh truyền giao tiếp Một ví dụ điển hình là sự phụ thuộc gốc, nơi tiến trình phụ thuộc vào nút gốc nơi nó được tạo ra, như trong trường hợp chuyển tiếp lời gọi hàm hệ thống ở nút gốc với sự phụ thuộc cục bộ Việc chuyển tiếp yêu cầu tới nút gốc thường dễ hơn so với việc hỗ trợ tất cả các dịch vụ trên các nút tính toán khác.
43 cũng ảnh hưởng trở lại đến tính ổn định bởi vì một lời gọi hàm bao giờ cũng phụ thuộc vào nút gốc của chính nó
Vấn đề về tính nhất quán trạng thái nội dung dữ liệu tạm
Vấn đề về tính nhất quán trạng thái của dữ liệu tạm thời và dữ liệu trong các bộ đệm của giao thức kết nối lưu trữ trong bộ nhớ rất quan trọng Điều này đặc biệt rõ ràng trong trạng thái bên trong lõi hệ điều hành, như các khối điều khiển giao thức TCP cho các kết nối hiện tại, cần được giữ nguyên sau quá trình di dời Tại mức độ ứng dụng, yêu cầu về sự đồng nhất giữa các tiến trình tương tác là rất cần thiết Ví dụ, việc di dời một máy chủ trò chơi trực tuyến hoặc máy chủ phục vụ nghe nhạc mà không làm gián đoạn các kết nối giữa máy chủ và máy trạm hiện có là một thách thức lớn Điều này trở nên phức tạp hơn khi khởi động lại ứng dụng mà vẫn cần đảm bảo các liên kết và trạng thái chuyển tiếp giữa các lớp trong mô hình OSI 7 lớp.
Vấn đề tách biệt người dùng và người vận hành
Vấn đề tách biệt giữa người dùng và người vận hành trong môi trường trung tâm dữ liệu rất quan trọng Người dùng chỉ quan tâm đến phần mềm và dịch vụ trên máy ảo mà không can thiệp vào hệ điều hành, trong khi người vận hành tập trung vào bảo trì và quản lý hệ thống mà không cần quan tâm đến ứng dụng đang chạy Khi cần di dời tiến trình, người dùng cần quyền quản trị root, điều này không phải lúc nào cũng khả thi do yêu cầu bảo mật khác nhau Ngược lại, người vận hành có thể cần di dời tiến trình để giải phóng tài nguyên, nhưng họ cần thông tin về các dịch vụ và ứng dụng đang được sử dụng để thực hiện điều này hiệu quả.
44 thực thi cũng như những ràng buộc phụ thuộc chỉ có người dùng hệ thống đó mới nắm được chi tiết
4.2.2 Di dời động máy ảo được đề xuất nghiên cứu phát triển
Di dời động máy ảo là một phương pháp di chuyển toàn bộ máy ảo, bao gồm hệ điều hành và ứng dụng, từ một máy vật lý này sang máy vật lý khác mà không làm gián đoạn hoạt động của máy ảo Quá trình này đảm bảo rằng bộ nhớ, nội dung lưu trữ và kết nối mạng của máy ảo được chuyển đến máy đích một cách liền mạch Sau khi di chuyển, trạng thái của các tiến trình và cấu hình máy ảo sẽ được khôi phục, cho phép máy ảo tiếp tục thực thi mà không gây ra sự gián đoạn cho các ứng dụng đang chạy Điều này giúp các ứng dụng không nhận biết sự thay đổi về nền tảng vật lý, đồng thời tránh được các vấn đề phụ thuộc sót lại Việc di dời này cũng đảm bảo tính nhất quán của dữ liệu, với nội dung không thay đổi trong cả bộ nhớ tạm và thiết bị lưu trữ lâu dài, do đó dữ liệu vẫn được bảo toàn nguyên vẹn sau khi di dời.
Việc di dời động máy ảo giúp người dùng duy trì quyền kiểm soát hệ thống và tiếp tục công việc bên trong máy ảo, trong khi người vận hành có thể thao tác bên ngoài mà không bị ảnh hưởng Người vận hành chỉ cần di dời toàn bộ hệ điều hành và các tiến trình hiện có như một khối đơn nhất, tạo sự tách biệt hiệu quả giữa hai không gian.
Di dời động máy ảo là công cụ quan trọng trong quản trị cụm máy, giúp tách biệt phần cứng và phần mềm, đồng thời phân chia các cụm máy với phần cứng khác nhau thành những miền dễ quản lý Khi một máy vật lý cần bảo trì, các máy ảo trên đó có thể được di dời sang máy khác mà không làm gián đoạn quá trình tính toán Ngoài ra, việc tái bố trí máy ảo giữa các máy trong nhóm giúp tối ưu hóa tài nguyên, như chia sẻ tải trên các máy bị tắc nghẽn Sự kết hợp giữa môi trường ảo hóa và khả năng di dời sẽ nâng cao hiệu quả quản lý tài nguyên tính toán.
4.2.3 Những hướng tiếp cận di dời động máy ảo chi phí thấp trên mạng WAN/MAN
Trong môi trường mạng WAN/LAN, tốc độ kết nối thường rất thấp so với mạng cục bộ, nơi có thể đạt tới hàng trăm Gbps Tổng băng thông của một quốc gia chỉ tương đương với tốc độ Gbps, trong khi băng thông dành cho cá nhân hoặc tổ chức còn thấp hơn nhiều.
Nghiên cứu di dời động máy ảo trên mạng WAN/MAN nhằm giảm chi phí kết nối bằng cách cải tiến thực trạng mạng Các phương pháp này dựa trên nền tảng Mobile IP đã được nâng cấp, hoặc giảm kích thước dữ liệu cần di dời.
Các can thiệp kiến trúc như phân chia và sắp xếp lại các bước thực thi, di dời song song và đảo ngược thứ tự thực thi trước bước đồng bộ hóa sau khi sao chép máy ảo là rất quan trọng Ảnh lưu của một máy ảo tối thiểu bằng với kích thước bộ nhớ RAM, và nếu không sử dụng đĩa cứng cục bộ, kích thước này vẫn khá lớn, từ hàng trăm MB đến hàng GB Trong môi trường mạng WAN/LAN, việc di chuyển dữ liệu lớn như vậy sẽ tốn kém Nhiều nghiên cứu đã đề xuất các biện pháp cải tiến để giảm chi phí di dời toàn bộ máy ảo, nhằm mục tiêu thực hiện quá trình di dời gần như ngay tức thì.
Để giảm kích thước dữ liệu với chi phí di dời thấp hơn, cần áp dụng các hướng đề xuất hiệu quả, tập trung vào việc tối ưu hóa nền tảng dữ liệu nhỏ.
Có thể giảm kích thước dữ liệu bằng cách áp dụng các phương pháp nén, chẳng hạn như kỹ thuật nén delta, trên một máy ảo lớn Ngoài ra, có thể chấp nhận một mức phí tổn dư thừa từ dữ liệu đã được sao chép và phân tán trên hệ thống mà không cần nén.
Khi thực hiện di dời, việc đã có sẵn một phần dữ liệu giúp giảm thiểu khối lượng dữ liệu cần sao chép, từ đó cải thiện thời gian di dời toàn bộ máy ảo.
Một số hướng nghiên cứu tập trung vào việc cải thiện kết nối trong quá trình di dời máy ảo bằng cách áp dụng các kỹ thuật robust để đảm bảo chức năng kết nối linh hoạt Đối với các kết nối mạng có thể bị gián đoạn, việc tối ưu hóa giao thức kết nối thông qua hệ thống Mobile IP cho phép duy trì kết nối ổn định trong suốt quá trình di dời Ngoài ra, việc chuyển thời điểm cài đặt cấu hình kết nối bằng cách thêm một card mạng ảo thứ hai vào máy ảo giúp tránh việc phải cấu hình lại kết nối sau khi di dời Để khắc phục sự cách biệt giữa vị trí nguồn và đích, việc xây dựng kết nối VPN giữa các nút ở xa cũng là một giải pháp hiệu quả.
Mặc dù các cải tiến đã giúp tăng tốc độ di chuyển ảnh lưu, vấn đề về kích thước lớn của ảnh máy ảo vẫn chưa được giải quyết Ngay cả các biện pháp nén dữ liệu cũng không thể làm giảm đáng kể kích thước của ảnh này.
4.2.4 Những hạn chế của di dời động máy ảo
Khảo sát di dời ứng dụng truyền thông điệp
4.3.1 Những đặc điểm di dời ứng dụng truyền thông điệp phù hợp điện toán đám mây
Việc di dời tiến trình có thể gặp khó khăn, nhưng trong số các ứng dụng, có một lớp ứng dụng tuân thủ các tiêu chuẩn quy định, được gọi là chương trình truyền thông điệp Nhóm ứng dụng này bao gồm nhiều tiến trình giao tiếp chỉ thông qua các thông điệp, do đó chúng có những đặc điểm riêng biệt Hãy cùng xem xét những đặc điểm này khi triển khai trên môi trường điện toán đám mây.
Thông điệp trong chương trình truyền thông là phần dữ liệu giao tiếp giữa các chủ thể (actor), tiến trình (process), tiểu trình (thread) và socket Khái niệm thông điệp được coi là sự nâng cấp của mảnh dữ liệu (datagram), không chỉ giới hạn trong một gói dữ liệu mà còn đảm bảo tính tin cậy, ổn định, bảo mật và khả năng giao tác Thông điệp thường được sử dụng để trao đổi thông tin giữa các tiến trình khác nhau, khác với dòng dữ liệu (stream) và ống dữ liệu (pipe), nơi dữ liệu được tổ chức thành chuỗi các phần dữ liệu.
Chuẩn hóa cú pháp định nghĩa và gọi các hàm thư viện trong chương trình truyền thông điệp giúp trừu tượng hóa và che giấu các thực tế bên dưới, cũng như các thay đổi trạng thái thông qua việc gửi nhận thông điệp Chuẩn lập trình MPI, tập trung vào các hệ thống tính toán hiệu năng cao, không chỉ chuẩn hóa các giao thức truyền nhận thông điệp mà còn các phương thức tương tác với các thành phần khác như tập tin và bộ đệm Sự tách biệt này giúp ứng dụng ít bị ảnh hưởng bởi các vấn đề phụ thuộc còn lại trong môi trường thực thi.
Trong quá trình lưu ảnh, kênh truyền được làm sạch, và toàn bộ vùng đệm của giao thức kết nối được lưu cùng với ứng dụng, giúp chuyển trạng thái trong bộ nhớ của TCP stack Hơn nữa, sự tách biệt giữa người dùng và hệ thống cũng được đảm bảo.
Trong điện toán đám mây, việc vận hành hệ thống đã có nhiều thay đổi đáng kể Người dùng có thể chủ động thuê máy ảo vào những thời điểm xác định trước, cũng như tắt hoặc mở máy ảo và chọn vị trí phù hợp với nhu cầu Trong thời gian thuê, người dùng chỉ cần quan tâm đến các dịch vụ và phần mềm chạy trên máy ảo, trong khi đó, người vận hành có thể thực hiện các nghiệp vụ khi máy ảo không sử dụng, phù hợp với lịch sắp xếp cho thuê.
Việc di dời toàn bộ máy ảo không chỉ giảm thiểu ảnh hưởng của các vấn đề liên quan đến quy trình di dời, mà còn giúp cải thiện hiệu suất của ứng dụng truyền thông điệp trên môi trường điện toán đám mây.
4.3.2 Những yêu cầu về di dời ứng dụng truyền thông điệp Đề tài tập trung vào việc di dời ứng dụng truyền thông điệp trên điện toán đám mây sử dụng thư viện lập trình OpenMPI Tính năng lưu ảnh phục hồi được tích hợp trong thư viện là cơ sở để hiện thực tính năng di dời ứng dụng Để di dời cần bổ sung tính năng di chuyển tập tin ảnh ứng dụng được lưu từ máy ảo cũ sang một máy ảo mới Để thực thi chương trình truyền thông điệp một trong những yêu cầu về cấu hình môi trường để thực thi là phải cung cấp được danh sách các nút tính toán để thực thi ứng dụng Câu hỏi là làm sao xây dựng được một cách thức quản lí phù hợp với tính linh động để xác định các thông tin của môi trường khi di dời ứng dụng
Triển khai ứng dụng truyền thông điệp trên điện toán đám mây
Các máy ảo trong cùng một cụm máy tính có khả năng kết nối tài nguyên lớn, với kết nối giữa các máy cục bộ Tài nguyên lưu trữ cho các máy ảo cũng dễ dàng truy xuất trong cụm Ứng dụng truyền thông điệp, bao gồm nhiều tiến trình trao đổi thông tin qua việc gửi nhận tin nhắn, thường được triển khai trên điện toán đám mây trên một cụm máy tính để đảm bảo kết nối trực tiếp và hiệu quả.
Trong mạng cục bộ LAN hoặc giữa hai mạng con, băng thông kết nối tương tự như kết nối trực tiếp, cho phép hai máy ảo trong cụm máy tính trên điện toán đám mây giao tiếp với tốc độ nhanh, độ trễ thấp và tỷ lệ lỗi thấp Đối với các ứng dụng truyền thông điệp có kích thước nhỏ và không yêu cầu băng thông lớn, có thể triển khai hệ thống tập tin của các máy ảo trên hệ thống tập tin phân bố như NFS Tuy nhiên, việc chia sẻ hệ thống tập tin giữa hai cụm máy tính trong điện toán đám mây có thể phức tạp, và các chính sách từ nhà cung cấp dịch vụ cùng với các công cụ quản lý máy ảo có thể hỗ trợ trong việc triển khai hệ thống một cách dễ dàng hơn.
Hình 14 Kết nối giữa hai máy ảo trong cùng một cụm máy tính
Khi di dời ứng dụng truyền thông điệp sử dụng thư viện OpenMPI, cần thiết lập các tham số đầu vào động tại thời điểm thực thi, bao gồm danh sách các nút tính toán Kiến trúc của OpenMPI cho phép tái cấu hình các thành phần của thư viện thông qua các tham số lệnh chuẩn MPI, do đó việc thiết lập các tham số cần thiết cho thư viện OpenMPI là điều quan trọng.
OpenMPI cho phép truyền các thông số dưới dạng cặp từ khóa và giá trị, ví dụ như ‘-am ft-enable-cr’, trong đó ‘-am’ là từ khóa và ‘ft-enable-cr’ là giá trị Cặp từ khóa và giá trị này là dạng dữ liệu cơ bản được hỗ trợ trong nhiều hệ thống giao tiếp Tất cả các tham số của thư viện OpenMPI đều tuân thủ định dạng này và có thể được gán giá trị tại thời điểm thực thi, giúp ứng dụng truyền thông điệp có thể “di chuyển” giữa các nút tính toán Vì vậy, OpenMPI được lựa chọn làm môi trường triển khai cho ứng dụng truyền thông điệp trong đề tài.