công cụ giả lập mạng từ bên thứ ba
Hình 3.2: Mô hình xây dựng môi trƣờng thử nghiệm
Mô hình đƣợc kiểm nghiệm thông qua các công cụ nhƣ công cụ giả lập mạng Mininet, OpenvSwitch hỗ trợ chuẩn OpenFlow, NOX dùng điều khiển các luồng OpenFlow, D-ITG là công cụ phát lƣu lƣợng nhƣ trong Hình 3.2. Cách xây dựng này cho một kiến trúc tƣơng đƣơng với kiến trúc xây dựng bằng các phần cứng vật lý.Hoàn toàn có thể áp dụng lại các khối nhƣ tối ƣu, định tuyến mà nhóm tác giả đã thực hiện để kiểm tra trên kiến trúc vật lý cho kết quả tƣơng đƣơng với kiến trúc giả lập.Đã có rất nhiều nhà nghiên cứu và phát triển khuyến cáo sử dụng các công cụ ảo hóa trên vì sẽ tiết kiệm đƣợc một chi phi khổng lồ đặc biệt là chi phí xây dựng một trung tâm dữ liệu thật cho thực nghiệm, các khối mô phỏng thực hiện trên các công cụ có thể chạy chính xác trên các thiết bị thật (chỉ phải chỉnh sửa một ít để phù hợp với các API của phần cứng) và các nhà nghiên cứu có thể chia sẽ cho nhau mô hình phát triển dễ dàng thông qua phần mềm.
36
Đồ hình mạng: Kiến trúc mạng sử dụng là kiến trúc Fat-Tree 3 tầng với số
cổng ở mỗi switch là k=4 tƣơng ứng với số server cần thiết là 16.Sử dụng công cụ Mininet cho phép xây dựng đƣợc một mạng giống nhƣ trong thực tế bao gồm tạo ra các switch,server, link liên kết giữa các thành phần mạng với nhau.Mininet cho phép tắt bật các link liên kết và có thể lập trình th m để tiến hành bật bắt các switch và server. Đồ hình mạng đƣợc xây dựng tích hợp vào Mininet giống nhƣ một chức năng thêm vào công cụ mô phỏng này, ta có thể tạo đƣợc đồ hình Fat-Tree bất kỳ với giá trị k chẵn tƣơng ứng.
Bộ tối ƣu (Optimizer): Đây là thành phần quan trọng nhất quyết định tới khả
năng tiết kiệm đƣợc của toàn mạng, đƣợc xây dựng trên công cụ NOX, có khả năng thống k lƣu lƣợng trong mạng thông qua bản tin openflow. Khối này thống k lƣu lƣợng trên các giao diện của mỗi switch, dựa vào thuật toán tối ƣu Topology-aware Heuristicđã đƣợc tích hợp vào sẽ quyết định xem switch và link nào sẽ đƣợc gỡ bỏ ra khỏi đồ hình. Sau đó gửi thông tin về đồ hình mới cho các bộ định tuyến và điều khiển công suất. Bộ tối ƣu đƣợc chạy liên tục và cập nhập đồ hình mới với chu kỳ cố định. Ngoài ra còn xây dựng thêm giao diện quản lý mạng đi kèm để tiện theo dõi kiểm tra sự hoạt động của các thiết bị mạng.
Bộ định tuyến (Routing): đƣợc xây dựng nhƣ một bộ phận của NOX, bộ này
nhận đƣợc thông tin về đồ hình từ bộ tối ƣu, tiến hành thực hiện định tuyến các luồng tr n đồ hình mới này. Hiện tại trong NOX đã hỗ trợ một số bộ định tuyến mặc định theo các thuật toán nhƣ Dynamic All Pairs Shortest Paths, Spanning Tree[27]. Nhóm phát triển đã xây dựng thêm một bộ định tuyến tích hợp thêm vào NOX theo kiểu cân băng tải phân cấp (Hierarchical Load-Balancing Routing Algorithm). Thuật toán này sẽ tính toán đƣờng đi cho tất cả các gói tin của cùng một luồng đi từ một cặp nguồn/đích theo một đƣờng duy nhất. Đƣờng đi tối ƣu đƣợc chọn là đƣờng đi có giá nhỏ nhất theo ti u chí đƣờng có tải nhỏ nhất. Với tiêu chí này, tải trong toàn mạng sẽ đƣợc phân phối đều trên tất cả các link của đồ hình sau khi đã tối ƣu, việc này tránh sự dồn tải quá nặng lên một số link trong khi các link khác vẫn rảnh rỗi. Phân phối tải cân
37
bằng lên tất cả các link sẽ tăng tính tin cậy cho mạng trung tâm dữ liệu. Ngoài ra thuật toán định tuyến xây dựng còn đƣợc bổ sung mô hình định tuyến phân tầng để giảm lƣu lƣợng không cần thiết đi trong mạng.
Bộ điều khiển công suất (Power control): bộ này đƣợc đề xuất xây dựng trên
Mininet, khối này nhận thông tin về đồ hình từ bộ tối ƣu, sau đó gửi bản tin tiến hành tắt bật switch và và các cổng của switch trên mạng. Hiện tại công cụ mô phỏng mạng chƣa cho ph p tắt bật các switch nên phải tiến hành tích hợp thêm các API vào Mininet để có thể tắt bật đƣợc các switch. Nhƣng tắt bật các switch trên công cụ mô phỏng hoàn toàn khác với trên thực tế rất nhiều, vì quá trình khởi động và tắt trên thực tế đòi hỏi nhiều thời gian và nhiều tiến trình khác nhau trong khi công cụ mô phỏng chỉ cần thực hiện vài dòng lập trình. Theo một số nghiên cứu cho thấy quá trình khởi động nhanh nhất khoảng 30s với Quanta switch [1], ngoài ra còn kèm theo việc khởi động các thiết bị phụ trợ khác. Tác giả và nhóm nghiên cứu hi vọng rằng trong tƣơng lai sẽ phát triển các switch có khả năng bật tắt nhanh và có thể hoạt động chính xác luôn ngay sau quá trình khởi động để phục vụ cho tiết kiệm năng lƣợng trong mạng trung tâm dữ liệu.
Bộ phát lƣu lƣợng: Khối phát lƣu lƣợng đƣợc xây dựng với ý nghĩa để kiểm
nghiệm độ chính xác của thuật toán tối ƣu. Rất khó xây dựng hay tái tạo lại đƣợc chính xác lƣu lƣợng thực tế trong mạng trung tâm dữ liệu vì điều này rất phức tạp. Bộ phát lƣu lƣợng sẽ đƣợc xây dựng theo một số kịch bản mô phỏng nhƣ tiến hành phát lƣu lƣợng gần (Near) giữa các server thuộc cùng 1 edge switch, phát lƣu lƣợng trung bình (Middle) giữa các server thuộc cùng 1 pod nhƣng không cùng li n kết 1 edge switch và phát lƣu lƣợng xa (Far) giữa các cặp server ở hai pod khác nhau, ngoài ra còn đƣa ra quá trình phát toán mạng để kiểm tra định tính bộ tối ƣu.
Trên thực tế môi trƣờng thử nghiệm trên có thể đƣợc xây dựng thông qua các thiết bị vật lý, đƣợc mô tả nhƣ Hình 3.3 dƣới đây:
38
Hình 3.3: Kiến trúc vật lý thực tế của môi trƣờng thử nghiệm [1]
Các switch trong mạng đƣợc tạo nên từ hai switch box có 48 port tích hợp chuẩn OpenFlow (hiện tại các hãng phần cứng đã hỗ trợ một số switch nhƣ NEC IP8800, Quanta LB4G, HP Procurve 5406 và 5412 tích hợp chuẩn OpenFlow v0.89).
Các server là các máy tính có cắm card NetFPGA 4 cổng, bộ phát lƣu lƣợng đƣợc tạo bằng các card này, có thể phát lƣu lƣợng cỡ Gbps. Ngoài ra có thể sử dụng card NetFPGA để cấu hình thành các OpenFlow switch thông qua các phần mềm hỗ trợ sẵn.
Bộ điều khiển mạng (Controler) thực hiện bằng một máy tính Linux có tích hợp NOX đi kèm. Bộ điều khiển này thực hiện chức năng của các bộ tối ƣu, định tuyến, điều khiển công suất và một số chức năng phụ khác thông qua giao thức OpenFlow.
Đồ hình mạng đƣợc tiến hành mô phỏng là kiến trúc Fat-Tree 3 tầng, đƣợc tạo bởi 20 switch 4 cổng, hỗ trợ kết nối tổng cộng 16 server. Đồ hình đƣợc chia ra làm 4
39
pod, mỗi pod có chứa 4 switch trong đó có 2 aggregation switch và 2 edge switch. Số core switch là 4. Các liên kết đƣợc thể hiện nhƣ tr n Hình 3.4.
Đồ hình đƣợc xây dựng bằng ngôn ngữ lập trình Python đƣợc tích hợp thẳng vào Mininet giống nhƣ một thành phần của công cụ mô phỏng này. Ngoài ra tác giả còn viết thêm giao diện hiện thị ra cửa sổ thực hiện lệnh (Console cho các server để tiện thực hiện lệnh.
Hình 3.4: Kiến trúc mạng trung tâm dữ liệu trong môi trƣờng thử nghiệm
Khối tích hợp thêm vào Mininet mang tên Fat-Tree, khối này có thể tạo ra đồ hình Fat-Tree với giá trị k chẵn bất kỳ, hiện tại để giá trị mặc định là k=4 tƣơng ứng với đồ hình triển khai thử nghiệm. Khối Fat-Tree đƣợc xây dựng dựa tr n các thƣ viện của Mininet trong đó có 2 Thƣ viện chính là Node và topo
Đồ hình mạng Fat-Tree với k=4 đƣợc xây dựng có các đặc điểm sau:
- Giá trị ID của server: chạy từ 1-16, tƣơng đƣơng IP chạy từ 10.0.0.1 đến 10.0.0.16.
- Giá trị ID của các switch trong tất cả các POD chạy từ 21 đến 36, tăng từ trái - sang phải, tính vị trí agg switch trƣớc rùi đến edge switch trong từng POD. - Giá trị ID core switch: chạy từ 17 đến 20. Kết nối đƣợc với bộ điều khiển NOX.
40