CHƯƠNG 4 : THIẾT KẾ CỦA BỘ GIẢ LẬP
4.1 Các thành phần chính
Thư viện Mininet cung cấp chức năng định tuyến và theo dõi gói tin trong mạng với các bộ SDN controller. Tuy nhiên, việc chạy thêm một bộ SDN controller trong ngữ cảnh cơng cụ giả lập CDN có thể tốn thêm tài nguyên không cần thiết. Trong luận văn này, thay vì định tuyến bằng các bộ controllers, tơi phát triển các routers ảo để mô phỏng hành vi của các routers trong môi trường thật. Cụ thể hơn, các routers ảo sử dụng giao thức Open Shortest Path First (OSPF) để định tuyến. Đồng thời, để giảm thời gian khởi tạo mạng, công cụ sẽ xây dựng trước ở mỗi routers ảo một bảng định tuyến tĩnh. Cụ thể hơn, cơng cụ này có 5 thành phần chính:
Client: Là các máy ảo trong cơng cụ được sử dụng để mô phỏng người dùng
cuối. Để có thể minh họa cho việc mơ phỏng mơi trường thực, luận văn này sử dụng một tập dữ liệu được trích xuất từ hệ thống log file của một hệ thống CDN thực ở Việt Nam [4]. Cụ thể hơn, mỗi mẫu dữ liệu là thông tin của một yêu cầu được gửi từ một người dùng tới hệ thống. Thông tin thô này bao gồm:
thời gian gửi, độ trễ, nội dung, kích thước nội dung, trạng thái cache, địa chỉ IP. Từ những thông tin thơ này, luận văn trích xuất vị trí địa lý và gom cụm nhiều người dùng thực thành một số lượng ít hơn các client ảo. Một client ảo sẽ đại diện và mô phỏng hành vi của các người dùng thực trong cùng khu vực. Hơn thế nữa, công cụ cung cấp hai cơ chế gửi yêu cầu là chế độ đồng bộ và bất đồng bộ. Chế độ bất đồng bộ được sử dụng để bắt chước tính đồng thời của nhiều yêu cầu được gửi bởi nhiều người dùng trong môi trường thực. Trong chế độ này, nhiều yêu cầu được gửi bất đồng bộ từ một client ảo theo từng khung thời gian. Ngược lại, trong chế độ đồng bộ, yêu cầu sẽ được client ảo gửi tuần tự. Cụ thể hơn của cơ chế này sẽ được mô tả trong phần 4.2.3.
Replica Server: Những ứng dụng thực của hệ thống CDN có thể được mô
phỏng và triển khai lại trong công cụ thông qua Docker container. Đặc biệt là các HTTP framework như Nginx[47], Apache[48], Varnish[49],... đều có thể được triển khai trong công cụ mô phỏng này. Tuy nhiên, các công cụ này thường bị cố định trong cơ chế cache và định tuyến. Để phục vụ cho mục đích nghiên cứu, công cụ cũng hỗ trợ một module HTTP server ảo để có thể triển khai các chiến lược caching mới dễ dàng hơn. Về những vấn đề xác thực tính đúng đắn trong chức năng của server ảo này sẽ được thí nghiệm và đánh giá trong phần 6.1.2.
Link (Đường dẫn): Thư viện Mininet hỗ trợ Traffic Control (TC) link [50].
Điều đó nghĩa rằng ta có thể thiết lập tài nguyên của đường dẫn như banwidth, loss và delay. Mức độ tin cậy của chức năng này của Mininet cũng đã được đánh giá trong nghiên cứu [43].
Router: Trước khi công cụ bước vào q trình mơ phỏng hành vi, nó sẽ có một
quá trình khởi tạo. Trong quá trình khởi tạo này, các tài nguyên mạng, network topology, định tuyến tĩnh,... sẽ được thực hiện. Bảng định tuyến tĩnh sẽ được khởi tạo trước trong quá trình này. Bên cạnh bảng định tuyến tĩnh này, cơng cụ
Origin Server: Server này có nhiệm vụ tạo ra nội dung và phản hồi yêu cầu từ Client hoặc Replica Server. Các Origin Server trong mơi trường thực tế thường
có các ứng dụng video streaming hay xử lý đa phương tiện cồng kềnh. Các ứng dụng xử lý video, ảnh này thường rất tồn tài nguyên chạy. Việc triển khai lại các ứng dụng này trong môi trường giả lập là không cần thiết trong môi trường giả lập. Thay vào đó, trong luận văn này sẽ phát triển một bộ tạo nội dung đơn giản và ít tốn tài nguyên hơn. Origin Server là một multi-processing HTTP server được xây dựng dựa trên FastAPI [51]. FastAPI là một trong những framework về dịch vụ web có hiệu năng tốt nhất hiện nay.
Một điểm đáng lưu ý liên quan đến cơ chế cô lập tài nguyên. Đây là cơ chế giúp cấp phát tài nguyên CPU cho mỗi máy ảo của hệ thống một cách độc lập. Công cụ sử dụng cơ chế này của Mininet để cấp phát tài nguyên CPU cho Client và các Server.