Bài viết này trình bày về công cụ mô phỏng việc cấp phát tài nguyên trong hệ thống Edge – Cloud, phục vụ cho một công bố khoa học của phòng nghiên cứu Future Internet Lab, Đại học Bách Khoa Hà Nội.
Mục lục
0. Nói phét cá nhân
Project này thực hiện từ năm 2018 trong Lab, hồi đó Paper đã được gửi tới NXB nhưng họ trả về vì vài lỗi ngữ pháp cần sửa. Năm 2021, nhân khoá mới vào Lab, trưởng Lab kienkauko giao cho tôi thực hiện Project này để tiếp tục ra Paper mới. Vì là Project của PGS.TS và NCSTS nên thằng sinh viên quèn như tôi chắc không hiểu được và thấy không hứng thú lắm. Tôi không hứng cái Project này vì nó khá nặng về Lí thuyết và Thuật toán mà không có các kiến thức thực tế về Networking, System và Cloud trong đó.
Tôi phát triển Công cụ mô phỏng (code Python rách thôi) để cho ông Ma Việt Đức nghĩ Thuật toán. Tôi thì cũng không hiểu mấy cái thuật toán đó lắm, cũng chả biết sao nó lại có hiệu quả nữa. Không rõ là sau cái Project này trình code của tôi có tăng lên tẹo nào không, chứ sau khi “tạm xong” cái này, kì sau đó tôi toàn ngồi làm Sysad cho FIL.
Nhân ngày hôm nay xong đồ án và bày tỏ ý chí gắn bó lâu dài dưới mái trường Bách Khoa yêu dấu này, kienkauko từ bên Đức vọng về thúc tôi viết cho chỉn chu cái readme để còn cite nên tôi cũng ngồi và bắt đầu hoàn thiện phần giao diện phông bạt cho mớ code tôi viết từ hơn 1 năm trước. Ikimashou!!!
1. Thông tin Project
Tên Project: Service Function Chain Embedding in Centralized and Distributed Data Centers – a Comparison
Công bố khoa học tại:
Thực hiện từ 2018 – 2023.
Thành viên tham gia:
- PGS.TS Nguyễn Hữu Thanh, Hiệu trưởng trường Điện – Điện tử, Đại học Bách Khoa Hà Nội
- PGS.TS Nguyễn Tài Hưng, Giảng viên cao cấp trường Điện – Điện tử, Đại Học Bách Khoa Hà Nội
- Nguyễn Trung Kiên, NCSTS tại Đại học Würzburg, CHLB Đức
- Nguyễn Tiến Mạnh, phòng nghiên cứu Future Internet Lab
- Đào Đại Hiệp và Ma Việt Đức: sinh viên KSTN Điện tử Viễn thông K64, Đại học Bách Khoa Hà Nội
2. Bài toán
Bài toán chúng tôi giải quyết có dạng như “Bài toán xếp thùng” (Bin Paking Problem).
Kịch bản được mô phỏng trên các topo mạng Backbone trong thực tế, hay SubstrateTopo. Hình dưới đây là topo Abilene được triển khai tại nước Mỹ.

Các node màu xanh lá (IngressNode) là các node tạo yêu cầu, các node màu đỏ là các Trung tâm dữ liệu (DataCentre), các node còn lại đóng vai trò các trạm trung chuyển (Router). Yêu cầu được tạo ra từ các IngressNode là các chuỗi dịch vụ (SFC) gồm các VNF, cần được triển khai tại các DataCentre. Thời gian tạo ra các SFC tại các IngressNode tuân theo phân phối Poisson. Các đường mạng nối giữa các Node có tài nguyên được biểu thị bằng Băng thông tối đa (Bandwidth).
Mỗi DataCentre có lượng tài nguyên (compute, network) cố định, được tổ chức gồm các Server và Router theo mô hình Fattree. Các Server có tài nguyên được biểu thị bằng Compute (tối đa là 100), các đường mạng nối giữa các SErver và Router có tài nguyên được biểu thị bằng Băng thông tối đa (bandwidth)

Các SFC gồm các VNF nối với nhau theo Topo Waxman. Mỗi VNF tiêu thụ một lượng tài nguyên Điện toán và các đường mạng nối giữa các VNF (màu xanh lam) tiêu thụ một lượng băng thông trong các DataCentre. Ngoài ra, đường mạng màu đỏ nối từ User tới chuỗi SFC cũng yêu cầu một lượng băng thông trong SubstrateTopo.

Công cụ mô phỏng của tôi được áp dụng để giải hai bài toán sau:
- Khi các SFC được tạo ra, cần chọn DataCentre nào để triển khai SFC này.
- Sau khi DataCentre được chọn, các VNF được triển khai như nào trên hệ thống Server trong DataCentre đó.
2.1. Mô phỏng triển khai SFC trong DataCentre
Giả sử DataCentre được tổ chức theo Fattree cấp 4, với mỗi Server có tài nguyên Điện toán là 100, băng thông trên các liên kết mạng tối đa là 100Mbps. Xét SFC có topo và yêu cầu tài nguyên như sau:

Giả sử SFC được triển khai trong DataCentre theo sơ đồ sau: Khi đó các đường màu đỏ thể hiện tài nguyên băng thông bị chiếm dụng khi triển khai SFC lên DataCentre này. Chú ý các đường màu đỏ trong hình bên dưới tương ứng với các đường màu xanh trong sơ đồ yêu cầu tài nguyên SFC bên trên.

Công cụ mô phỏng cho phép triển khai thuật toán để deploy SFC lên một DataCentre, trong đó bao gồm việc lựa chọn các Server để deploy các VNF và thực hiện định tuyến giữa các VNF này trên hệ thống mạng Fattree trong DataCentre.
2.2. Mô phỏng lựa chọn DataCentre để triển khai SFC
Ta vẫn sử dụng sơ đồ yêu cầu tài nguyên của SFC như bên dưới. Giả sử một SFC được sinh ra tại vị trí IngressNode số 5 và cần được deploy vào một trong ba DataCentre 4, 7, 6. Công cụ cho phép ta triển khai thuật toán lựa chọn DataCenter để deploy SFC đó. Giả sử vị trí DataCentre được lựa chọn là 6 và định tuyến cho kết quả đường đi là 5-2-6. Hình vẽ bên dưới với đường màu hồng thể hiện các đường kết nối mạng bị tiêu thụ tài nguyên băng thông, ở đây là 10Mbps tương ứng với giá trị đường màu đỏ trong sơ đồ SFC.

3. Công cụ mô phỏng
Sơ đồ thiết kế hướng đối tượng

Thì, đây là Blog cá nhân ấy, cũng không hay lắm khi trình bày chi tiết như một Document. Vậy nên, muốn đọc rõ hơn về công cụ này, bạn vào đây đọc cho to và rõ ràng nhé hihi:
Bonachan no shorui: https://bonachan-no-shorui.notion.site/Cloud-Resource-Allocation-Simulator-c2ce84a106044dd9b4f270bcd1975a7d
Github: https://github.com/bonavadeur/cloud-resource-allocation-simulator
4. Kết luận
Phù, viết xong cái doc này chắc là cũng đoạn tình với Project này rồi. Cũng không rõ là sau này trong Lab còn thằng nào phát triển tiếp nữa không, nhưng mà viết xong cái document up lên Github làm mình làm mẩy, dù có thể không có ai đọc, để ngắm đi ngắm lại lúc rảnh cũng rất đã. Với quả doc chi tiết như này tự tin vài năm nữa đọc lại vẫn có thể theo kịp được trong vài giờ :)).
Project này mang lại cho tôi mấy kinh nghiệm sau:
- Design Pattern: lần đầu tiên được làm quen với khái niệm Design Pattern, code theo module, tự chia module để hai người làm cùng nhau không xung đột. Vẫn có dự định học lại Design Pattern nhưng chưa có dịp để động tay động chân trở lại.
- Nghiên cứu và Ứng dụng: 2 con đường làm việc khác hẳn nhau. Không hẳn dự án nghiên cứu nào cũng hàn lâm nhưng dự án nghiên cứu đầu của t hơi bị hàn lâm quá, một chút. Qua đó t mới nhận ra hai con đường này khác nhau nhiều tới mức nào. Hồi đó chán làm nghiên cứu dã man, giờ đi làm rồi lại thích quay lại ngồi Lab làm nghiên cứu.
Fact nhỏ: ban đầu làm cái này cũng hứng ghê lắm, cơ mà sau có hôm đi về với anh Kiên, hỏi xem làm cái này có giúp gì cho hướng theo Cloud không (hồi đó ngố quá mà), Kiên senpai bảo đéo. Trầm cảm mất mấy ngày @@.
Dù sao cũng cảm ơn Kiên Senpai đã luôn mang tinh thần hoà đồng vui vẻ từ Đức về Việt Nam cho tới tận bây giờ.
5. Contributeur
Đào Hiệp – Bonavadeur – ボナちゃん
Ma Việt Đức – maduc238
Phòng nghiên cứu Mạng máy tính và Điện toán Đám mây Future Internet Laboratory, Phòng 618 Thư Viện Tạ Quang Bửu, Đại học Bách Khoa Hà Nội
未来のインターネット研究室, タコアンビュ図書館の618、ハノイ百科大学、ベトナム。

