Một trong những giải pháp được đưa ra là điều khiển thông minh mức tiêu thụ năng lượng của các bộ chuyển mạch sử dụng trong trung tâm dữ liệu.Vì vậy “Nghiên cứu và thực hiện phương p
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN VĂN CƯỜNG
NGHIÊN CỨU VÀ THỰC HIỆN PHƯƠNG PHÁP TIẾT KIỆM NĂNG LƯỢNG TRÊN BỘ CHUYỂN
Trang 2Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: PGS.TS Nguyễn Văn Cường
Phản biện 1: TS Võ Minh Tuấn
Phản biện 2: TS Ngô Văn Sỹ
Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Kỹ thuật Điện tử họp tại trường Đại học Bách Khoa vào ngày
25 tháng 10 năm 2020
Có thể tìm hiểu luận văn tại:
Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học Bách khoa
Thư viện Khoa Điện tử Trường Đại học Bách khoa - ĐHĐN
DUT.LRCC
Trang 3MỞ ĐẦU
Sự mở rộng không ngừng về phạm vi và quy mô của các trung tâm dữ liệu nhằm đáp ứng nhu cầu sử dụng, dẫn đến thực trạng mức tiêu thụ năng lượng quá lớn của thiết bị mạng Một trong những giải pháp được đưa ra là điều khiển thông minh mức tiêu thụ năng lượng của các bộ chuyển mạch sử dụng trong trung tâm dữ liệu.Vì
vậy “Nghiên cứu và thực hiện phương pháp tiết kiệm năng lượng trên bộchuyển mạch OpenFlow” là lý do luận văn tập trung nghiên
cứu
Nội dung của luận văn gồm5 chương:
Phần 1 “Tìm hiểu thực trạng và giải pháp mạng OpenFlow”
Chương 1: Vấn đề tiết kiệm năng lượng và giải pháp sử
dụng mạng OpenFlow
Chương 2:Ứng dụng mạng OpenFlow trên nền tảng
NetFPGA
Phần 2 “Nghiên cứu giải pháp tiết kiệm năng lượng”
Chương 3: Triển khai hệ thống mạng OpenFlow trên nền
tảng kit NetFPGA
Chương 4: Xây dựng chương trình tiết kiệm năng lượng cho
chuyển mạch OpenFlow
Phần 3 “Đo đạc và đánh giá kết quả đạt đươc”
Chương 5: Thực hiện đo đạc và kết quả
DUT.LRCC
Trang 4CHƯƠNG 1 VẤN ĐỀ TIẾT KIỆM NĂNG LƯỢNG VÀ GIẢI PHÁP SỬ
DỤNG MẠNG OPENFLOW
1.1 Giới thiệu
Cơ sở hạ tầng mạng trở nên quan trọng trong các hoạt động của các tổ chức như trường học, doanh nghiệp, nhà cung cấp dịch vụ mạng Vấn đề đặt ra cho các nhà nghiên cứu và phát triển là làm sao
có thể giảm tối đa lượng điện năng tiêu thụ của các trung tâm dữ liệu
mà khả năng xử lý thông tin vẫn được đảm bảo Nội dung chương này giới thiệu lý do tiết kiệm năng lượng và giải pháp sử dụng mạng OpenFow
1.2 Vấn đề tiết kiệm năng lượng
Các switch và router hiện tại không cho biết đầy đủ các thông số năng lượng tiêu thụ Một switch/router đặc trưng gồm một chassis chứa các khe cắm các linecard Công suất tiêu thụ của chassis chiếm phần lớn công suất tiêu thụ của switch nên đo thông số năng lượng tiêu thụ của tất cả các thành phần trong switch một cách toàn diện thì rất khó thực hiện
1.3 Giải pháp sử dụng mạng OpenFlow
1.3.1 Sự cần thiết cho một kiến trúc mạng mới
Hầu hết các mạng thông thường đều theo kiến trúc phân cấp Thiết kế này hiệu quả khi mô hình tính toán client-server chiếm ưu thế, nhưng không thích hợp với yêu cầu tính toán đa dạng, năng động
và nhu cầu lưu trữ dữ liệu
1.3.2 Mục tiêu của mạng OpenFlow
Yêu cầu thị trường hiện nay là một gánh nặng với kiến trúc mạng truyền thống Những hạn chế của mạng hiện tại bao gồm:
- Độ phức tạp cao gây tắc nghẽn
DUT.LRCC
Trang 5- Chính sách không đồng nhất
- Khả năng quy mô kém
- Phụ thuộc vào nhà cung cấp thiết bị
1.3.3 Giao thức OpenFlow
Giao thức OpenFlow, cho phép trực tiếp thao tác trên phần chuyển mạch của các thiết bị mạng, có thể hỗ trợ việc chuyển tiếp các gói tin OpenFlow và gói tin truyền thống, điều này giúp cho doanh nghiệp và người sử dụng dễ dàng tiếp cận đến mạng, ngay cả trong môi trường mạng thiết lập bởi nhiều nhà cung cấp
1.4 Kết luận
Tóm lại, các xu hướng mới của người sử dụng ngày càng ưa chuộng tính di động, ảo hóa máy chủ, và yêu cầu đáp ứng một cách nhanh chóng với điều kiện kinh doanh luôn thay đổi đặt ra nhiều yêu cầu lên hệ thống mạng, rất nhiều kiến trúc mạng thông thường hiện nay không thể đảm đương được
DUT.LRCC
Trang 6CHƯƠNG 2 ỨNG DỤNG MẠNG OPENFLOW TRÊN NỀN
TẢNGNETFPGA
2.1.Giới thiệu
Thiết kế hay lập trình cho FPGA được thực hiện chủ yếu bằng các ngôn ngữ mô tả phần cứng HDL như VHDL, Verilog, AHDL Nội dung chương này giới thiệu về ứng dụng mạng OpenFlow trên nền tảng NetFPGA
2.1.1 Ứng dụng của FPGA
FPGA được ứng dụng để chế tạo ra các thiết bị mạng máy tính như bộ định tuyến, bộ chuyển mạch Trong luận văn này là bộ chuyển mạch OpenFlow
2.1.2 Kiến trúc của FPGA
Các kiến trúc cơ bản của FPGA bao gồm ba loại thành phần: các khối logic, định tuyến, và các khối vào ra Nó bao gồm một mảng các khối logic có thể cấu hình được (CLB) có thể được kết nối với nhau cũng như các khối I/O có thể lập trình được thông qua một số loại kiến trúc định tuyến có thể lập trình được
Hình 2.1 Kiến trúc chung của FPGA
DUT.LRCC
Trang 72.2 Chuyển mạch OpenFlow trên nền tảng NetFPGA
2.2.1 Kiến trúc bộ chuyển mạch OpenFlow
Hình 2.5 Cấu trúc của một OpenFlow Switch
Chuyển mạch OpenFlow chủ yếu bao gồm hai bảng luồng (bảng khớp chính xác và bảng ký tự đại diện) và giao diện để sửa đổi các mục trong bảng luồng Bộ điều khiển OpenFlow quyết định đường dẫn mới cho gói Hình 2.5 mô tả ngắn gọn về chuyển mạch OpenFlow
2.2.1.1 Bộ điều khiển OpenFlow
Bộ điều khiển là thiết bị chính, chịu trách nhiệm duy trì tất cả các quy tắc mạng và phân phối các hướng dẫn thích hợp cho các thiết
bị mạng
2.2.1.2 Chuyển mạch OpenFlow
Chuyển mạch OpenFlow chủ yếu bao gồm ba phần:
- Flow-table: Bảng này bao gồm các mục nhập luồng và
mỗi mục nhập luồng có một hành động đi kèm dùng để xử lý các luồng
- Secure Channel: Là phần mềm dùng để kết nối bộ chuyển
mạch với bộ điều khiển Nó cho phép lệnh và gói tin được truyền qua lại giữa bộ điều khiển và bộ chuyển mạch sử dụng giao thức OpenFlow
- Giao thức OpenFlow: Giao thức cho phép chỉnh sửa bảng
luồng từ một bộ điều khiển từ xa, tránh được việc phải lập trình cho
bộ chuyển mạch
2.2.1.3 Các thành phần của chuyển mạch OpenFlow
DUT.LRCC
Trang 8a.Giao thức Openflow
Ba loại thông báo được xác định trong giao thức OpenFlow: Tin nhắn đối xứng
Tin nhắn không đối xứng
Tin nhắn điều khiển chuyển mạch
Bộ điều khiển có thể quản lý và sửa đổi trạng thái của chuyển mạch OpenFlow qua những tin nhắn đó
b Bảng luồng OpenFlow
Chuyển mạch OpenFlow có hai bảng luồng: Bảng khớp chính xác và bảng khớp ký tự đại diện Gói luồng qua xử lý đường ống (pipeline) được thể hiện trong Hình 2.10
Hình 2.10.Xử lý đường ống
c Kênh OpenFlow
Chuyển mạch OpenFlow kết nối với bộ điều khiển thông qua kênh OpenFlow Thông qua giao diện này, bộ điều khiển có thể quản
lý và sửa đổi bảng luồng
2.2.2 Giới thiệu về NetFPGA
NetFPGA-10G là phiên bản thế hệ thứ hai.Có bốn cổng Ethernet 10 Gbps song công
DUT.LRCC
Trang 9Hình 2.11 Phác thảo phần cứng
NetFPGA-10G có các đặc điểmsau:
1) Hoạt động ở tốc độ dòng 10 Gbps ngay cả vớikích thước gói nhỏ nhất (14,88 Mpps - Hàng triệugói trên giây)
2) Sử dụng bộ nhớ FPGA bên trong (Block RAM)
3) Các luồng được xóa khỏi bộ nhớ khi đã xuất hoặc hết thời gian chờ không hoạt động (15 giây)
Hình 2.13.Sơ đồ khối của FPGA
2.2.3 Xây dựng bộ chuyển mạch OpenFlow trên nền tảng NetFPGA
NetFPGA được sử dụng là phần cứng mạng tốc độ Gigabit, bao gồm một thẻ PCI có đồ họa, bộ nhớ và bốn cổng Ethernet 1-Gig Cung cấp một kiến trúc chuyển tiếp gói linh hoạt dựa trên hoạt động đều đặn, nó cũng cho phép OpenFlow tuân thủ tiêu chuẩn chuyển mạch, có thể dễ dàng cấu hình lại thông qua mặt phẳng điều khiển của nó để hỗ trợ các loại ứng dụng khác
2.3 Kết luận chương 2
DUT.LRCC
Trang 10Qua chương này, các hiểu biết chung về công nghệ FPGA và chuyển mạch OpenFlow trên nền tảng NetFPGA đã được trình bày Nhằm cung cấp hình ảnh tổng quan về FPGA và những kiến thức về chuyển mạch OpenFlow trên nền tảng NetFPGA
DUT.LRCC
Trang 11CHƯƠNG 3 TRIỂN KHAI HỆ THỐNG MẠNG OPENFLOW TRÊN NỀN
TẢNG KIT NETFPGATRONG THỰC TẾ
3.1 Giới thiệu mô hình thử nghiệm
Chuyển mạch OpenFlow 4 cổng 1-GigE trên NetFPGA
Hình 3.1 Mô hình thử nghiệm chuyển mạch OpenFlow 3.2 Xây dựng chuyển mạch OpenFlow
Trong thiết kế của đề tài, dữ liệu OpenFlow nhận các gói thông qua các gói tin được tạo Tất cả các thiết bị ngoại vi chia sẻ cùng một xung clock (100 MHz) và thiết lập lại
Hình 3.2 Kiến trúc hệ thống OpenFlow
Mô-đun tra cứu cổng đầu ra (Hình 3.3) là phần quan trọng nhất trong khung thiết kế chuyển mạch OpenFlow, bao gồm trình soạn thảo mục nhập bảng, bộ điều khiển bảng luồng và bộ xử lý hành động
DUT.LRCC
Trang 12Hình 3.3.Mô đun tra cứu cổng đầu ra
Khi các gói mới được tạo đi vào chuyển mạch OpenFlow, thông tin tiêu đề quan trọng được trích xuất và sau đó được thiết lập thành định dạng và so sánh với các mục trong hai bảng luồng Ở đây, các gói trùng khớp và không trùng khớp được chuyển đến hàng đợi đầu ra cuối cùng
3.3.Kết luận chương 3
Trong chương này, thực hiện việc xây dựng các chuyển mạch OpenFlow dựa trên nền tảng NetFPGA theo môi trường thực tiễn Việc xây dựng hệ thống mạng là cơ sở nghiên cứu khác đặc biệt là về giải thuật tiết kiệm năng lượng cho mạng OpenFlow
DUT.LRCC
Trang 13CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH TIẾT KIỆM NĂNG LƯỢNG
CHO CHUYỂN MẠCH OPENFLOW
4.1 Giải pháp tiết kiệm năng lượng
Để tiết kiệm năng lượng luận văn đưa ra giải pháp sử dụng tùy
chọn “LOCAL”t rong Openflow specification tích hợp một
“Microprocessor” bên trong chuyển mạch OpenFlow để phân tích các hành động và các luồng dữ liệu đến/đi để bật và tắt các cổng tương ứng Phân tích lưu lượng thực của các cổng để thiết lập các chế độ hoạt động các cổng cụ thể gồm các mục tiêu như sau:
- Phân tích các “Action” của các luồng, hệ thống chỉ kích hoạt các cổng nào mà luồng có nhu cầu trao đổi dữ liệu Còn các cổng khác thì sẽ tắt
- Phân tích băng thông luồng dữ liệu đến của các End-User đến Port, hệ thống sẽ thiết lập chế độ hoạt động cho cổng đó phù hợp
Các giải pháp này xuất phát từ việc chuyển trạng thái của chuyển mạch về trạng thái tiết kiệm năng lượng Với mỗi cổng của chuyển mạch OpenFlow được ngắt sẽ tiết kiệm được xấp xỉ 1W và với mỗi chuyển mạch 4 port được tắt đi sẽ tiết kiệm được xấp xỉ 10W (4W cho 4 port và 6W cho phần lõi)
4.2 Thiết kế các mô đun
4.2.1 Mô đun thiết lập mục nhập bảng luồng
Mô đun thiết lập mục nhập bảng luồng là để trích xuất các tiêu đề gói và tổ chức chúng như một định dạng cố định của mục nhập bảng luồng
DUT.LRCC
Trang 14Hình 4.1 Mô đun thiết lập mục nhập luồng
DUT.LRCC
Trang 15Field Bits
Bảng 4.1 cho thấy các trường tiêu đề được trích xuất từ gói trong thiết kế của đề tài theo các trường khớp được mô tả trong OpenFlow specification v1.1 Hình 4.2 minh họa cấu trúc của khung Ethernet có, và không có thẻ Vlan (0x8100) hoặc thẻ QinQ (0x8a88) Hình 4.3 minh họa quá trình nhận L2 trường tiêu đề Các loại Ethernet khác nhau (xem bảng 4.2) được phát hiện thông qua các câu lệnh
Hình 4.2.Cấu trúc gói tin Ethernet
Hình 4.3.Máy trạng thái trình phân tích cú pháp L2
DUT.LRCC
Trang 16Bảng 4.3 Loại giao thức IP
Hình 4.5 Máy trạng thái trình phân tích cú pháp L3/L4 (Ipv4)
Nếu loại Ethernet là ARP, arp_parser (hình 4.7) bắt đầu hoạt động Mã ARP, địa chỉ IP của người gửi và địa chỉ IP đích trong các trường tiêu đề ARP (hình 4.6) được trích xuất
Hình 4.6 Cấu trúc tiêu đề ARP
Hình 4.7 Máy trạng thái trình phân tích cú pháp ARP
Có thể thấy từ hình 4.8, chiều dài nhãn MPLS là 20 bits và lưu lượng MPLS lớp là 3 bit trong các trường tiêu đề MPLS Nếu loại Ethernet là MPLS, máy trạng thái mpls_parser (hình 4.13) bắt đầu
DUT.LRCC
Trang 17trích xuất nhãn MPLS và lớp lưu lượng MPLS
Hình 4.8 Cấu trúc tiêu đề MPLS
Hình 4.13 Máy trạng thái phân tích cú pháp MPLS
4.2.1.3 Tra cứu thiết lập mục nhập luồng
Khối tra cứu thiết lập mục nhập luồng sẵn sàng để thiết lập khi khối phân tích cú pháp tiêu đề bắt đầu hoạt động
4.2.1.4 Mô phỏng kiểm tra
Testbench trong VHDL được viết để kiểm tra các chức năng của khối phân tích cú pháp tiêu đề, khối tra cứu thiết lập mục nhập và toàn bộ mô đun thiết lập mục nhập bảng luồng Kết quả kiểm tra mô phỏng được thể hiện trong hình 4.15 Thuật toán 4.5 cho thấy ví dụ về testbench Hình 4.15 cho thấy các trường tiêu đề quan trọng được trích xuất chính xác
Hình 4.15 Kết quả mô phỏng phân tích tiều đề gói tin
DUT.LRCC
Trang 18Hình 4.16 Kết quả mô phỏng tra cứu mục nhập bảng lưu lượng
Hình 4.17 Kết quả mô phỏng thiết lập mục nhập bảng luồng
4.2.2 Mô đun điều khiển bảng luồng
Mục tra cứu được tra cứu trong mô đun điều khiển bảng luồng sau khi được phân tích cú pháp và được trích xuất
4.2.2.1 Các thành phần của mô đun điều khiển bảng luồng
Hình 4.18 Mô đun điều khiển bảng luồng
Hình 4.18 minh họa các thành phần chính của mô đun điều khiển bảng luồng bao gồm lựa chọn yêu cầu, bảng khớp chính xác, bảng khớp ký tự đại diện, hành động, bộ so sánh và chính sách điều khiển
4.2.2.2 Các dạng tín hiệu
Tín hiệu truy vấnvà trả lời của mô đun thiết lập mục nhập luồng
DUT.LRCC
Trang 19Tín hiệu cho mô đun chính sách điều khiển
Tín hiệu cho mô đun bộ xử lý hành động
4.2.2.3.Mô phỏng kiểm tra
Hình 4.20 Kết quả mô phỏng tra cứu bảng luồng
Hình 4.21 Kết quả mô phỏng viết mục nhập luồng
4.2.3.Mô đun xử lý hành động
Vai trò của mô đun xử lý hành động (hình 4.22) là chỉ định chuyển tiếp các cổng, cập nhật các trường tiêu đề và độ dài của các gói theo chuyển mạch OpenFlow
4.2.3.1 Các thành của mô đun xử lý hành động
Hình 4.22 Mô đun xử lý hành động
DUT.LRCC
Trang 20Hành động bao gồm các thông tin như cổng đầu ra, cờ hành động, Vlan ID… Cờ hành động là đểhướng dẫn thực thi chính xác các hành động
4.2.3.2 Các dạng tín hiệu
Tín hiệu từ mô đun thiết lập bảng luồng
Tín hiệu từ bộ điều khiển bảng luồng
4.2.3.3 Mô phỏng kiểm tra
Hình 4.23 Kết quả mô phỏng xử lý hành động
4.2.4 Mô đun chính sách điều khiển
Mô-đun chính sách điều khiển được thực hiện trong cùng một FPGA Nếu không tìm thấy trường phù hợp, mô-đun chính sách điều khiển bắt đầu hoạt động để đưa ra quyết định về cách đối phó với gói chưa từng có
4.2.4.1 Chính sách điều khiển
Hình 4.24 và hình 4.25 minh họa mô đun chính sách điều khiển và các xử lý để viết các luồng mới tương ứng
DUT.LRCC
Trang 21Hình 4.24 Mô đun chính sách điều khiển
4.2.4.2 Các dạng tín hiệu
Tín hiệuđến từ mô đun điều khiển bảng luồng
Tín hiệu gửi cho mô đun bộ điều khiển bảng luồng
4.2.4.3 Mô phỏng kiểm tra
Chức năng của mô-đun này là để tạo thông tin nhập luồng và
viết chúng vào các bảng luồng sau khi nhận được yêu cầu không
trùng khớp
Hình 4.26 Kết quả mô phỏng chính sách điều khiển
4.3 Kết luận chương 4
Chương này đã đưa ra giải pháp xây dựng các chuyển mạch
OpenFlow sang trạng thái năng lượng thấp; đồng thời quan trọng hơn
là đã tạo ra các bản tin mới theo chuẩn giao thức OpenFlow mang
thông tin về các chế độ tiết kiệm năng lượng được gửi từ bộ điều
khiển Các bản tin này để thiết lập các trạng thái hoạt động của các
bộ chuyển mạch OpenFlow tại từng thời điểm dựa theo các thuật toán
tìm đường được các nhà phát triển thử nghiệm
DUT.LRCC