Trong phƣơng phƣơng này, khối Tối ƣu sẽ điểu khiển thay đổi trạng thái hoạt động của link theo tình trạng lƣu đang chạy qua link đó. Một link có 4 trạng thái hoạt động là: tắt, 10Mbps, 100Mbps và 1Gbps. Cách này đảm bảo lƣu lƣợng đi qua switch đƣợc xử lý ở tốc độ hoạt động thích hợp nhất của link để giảm công suất tiêu thụ của port. Ví dụ, lƣu lƣợng 90 Mbps sẽ đƣơc xử lý bởi link có tốc độ hoạt động 100 Mbps. Tuy nhiên, nếu đơn thuần chỉ thay đổi trạng thái link theo tải đặt vào nó, hiệu năng và độ tin cậy sẽ không đảm bảo, chất lƣợng dịch vụ sẽ giảm. Để khắc phục điểm này, ta có thể đặt một mức ngƣỡng chuyển trạng thái link. Ví dụ, luôn đảm bảo lƣu lƣợng đi qua không vƣợt quá một mức ngƣỡng nào đó, chả hạn 70% trạng thái link hiện tại [20]. Tức là lƣu lƣợng nhỏ hơn 70 Mbps sẽ đƣợc phục vụ bởi link 100Mbps, tuy nhi n khi lƣu lƣợng quá 70Mbps, ta sẽ phải dựng link 1Gbps. Ngoài ra, cũng với mục đích cải thiện hiệu năng và tính tin cậy, chống lỗi, ta luôn đảm bảo có một đƣờng dƣ thừa (chỉ đặt ở 10Mbps để xử lý lƣu lƣợng có thể tăng đột biến. Bằng cách thay đổi trạng thái link, ta đó gián tiếp giảm năng lƣợng tiêu thụ cho mỗi switch nối với link đó do mỗi link đều nối với 2 port, thay đổi trạng thái link chính là thay đổi tốc độ hoạt động của port. Khi giảm tốc độ hoạt động tr n đƣờng link thì năng lƣợng tiêu thụ trên cổng sẽ giảm, dẫn đến năng lƣợng tiêu thụ của toàn switch sẽ giảm theo.
Để áp dụng đƣợc thuật toán này thì cần phải có giải pháp phần cứng hỗ trợ việc thay đổi tăng giảm tần số hoạt động của switch. Với nển tảng FPGA, giải pháp trên hoàn toàn có thể trở thành hiện thực. Mọi thành phần bên trong thiết bị trên nền tảng
61
FPGA đều có thể đƣợc thay đổi, tuỳ chỉnh theo yêu cầu của ngƣời thiết kế, điều đó có nghĩa là có thể thay đổi cấu trúc, chức năng của từng bộ phận trong thiết bị. Hệ quả là, các thành phần có thể đƣợc tắt bớt khi không cần thiết, và tần số làm việc của thiết bị có thể đƣợc thay đổi.
Hình 4.6: Sơ đồ mối quan hệ giữa bộ tối ƣu và bộ định tuyến, bộ điều khiển công suất
Khối Tối ƣu sẽ đƣợc lập trình nhƣ một NOX component, sử dụng ngôn ngữ lập trình Python. Component này sẽ thực hiện những đặc điểm chính sau:
Sau mỗi khoảng thời gian xác định (gọi là PORT_STATISTIC_PERIOD, thông số này có thể điều chỉnh), bộ tối ƣu trong NOX controller sẽ thu thập thông tin về số packets, số bytes ở tất cả các port của tất cả các switches trong mạng data center. Tổng thời gian để thu thập hết các thông tin của các switches trong mạng không đến 100ms.
Dựa vào thông tin thu thập đƣợc ở trên, bộ tối ƣu sẽ tính toán ra đồ hình tối ƣu cho mạng để thỏa mãn nhu cầu tải tại một thời điểm
Đề phòng xảy ra các quá trình tăng l n đột ngột của lƣu lƣợng, tác giả và nhóm nghiên cứu đã sử dụng mức ngƣỡng trong các link là 0.7 [20] đây là con số kinh
62
nghiệm do nhiều nhà nghiên cứu đề xuất và chƣa có một chứng minh cụ thể nào) tức là khi lƣu lƣợng đạt đến mức 0.7 tối đa của link thì trong thuật toán tối ƣu sẽ coi nhƣ link này đã đầy và tiến hành bật link khác lên.
Switch có thể thay đổi xung nhịp clock để điểu khiển tốc độ đƣờng liên kết. Nhóm nghiên cứu đã áp dụng thuật toán Link State Adaptive với đƣờng liên kết xét ở 3 trạng thái 10Mbps, 100Mbps và 1Gbps.
Khối Link State Adaptive trong bộ tối ƣu thực hiện không phụ thuộc vào phần tính toán bật tắt switch trong đồ hình mà nó thực hiện song song với quá trình đó.
Bắt đầu
Đọc lưu lượng vào ra trên các port của switch thông qua Monitoring
component
Tính toán theo thuật toán Topology-aware Heuristic
Cập nhật danh sách các switch ON-OFF
Thay đổi trạng thái đường link
Tính toán khả năng tiết
kiệm theo mô hình đề xuất Hiển thị GUI
Hình 4.7: Sơ đồ khối bộ tối ƣu
63
Đọc lưu lượng vào ra trên các port của switch thông
qua Monitoring component So sánh Lưu lượng với các khoảng ngưỡng Giới hạn băng thông thành 1Gbps Giới hạn băng thông thành 10Mbps Giới hạn băng thông thành 100Mbps 7Mbps < F <= 70Mbps F <= 7Mbps 70Mbps < F < =700Mbps Tính toán năng lượng tiết kiệm
Hình 4.8: Sơ đồ thể hiện thành phần Link State Adaptive