Nghiên cứu giải pháp phần cứng tiết kiệm năng lượng cho các trung tâm dữ liệu “Nghiên cứu giải pháp phần cứng tiết kiệm năng lượng cho các trung tâm dữ liệu” Trung tâm dữ liệu đóng một vai trò quan trọng trong các hoạt động thường ngày của mọi người. Sự mở rộng không ngừng cả về phạm vi và quy mô của các trung tâm dữ liệu dẫn đến thực trạng mức tiêu thụ năng lượng quá lớn. Các ảnh hưởng của điều này không chỉ về giá cả mà còn về môi trường khi lượng khí độc hại thải ra từ các trung tâm dữ liệu là một vấn đề rất đáng quan tâm. Một trong những giải pháp được đưa ra đó là điều khiển một cách thông minh việc tiêu thụ năng lượng của các bộ chuyển mạch được sử dụng trong các trung tâm dữ liệu. Nhóm tác giả thực hiện đồ án đã đưa ra các cải tiến cho các bộ chuyển mạch OpenFlow nhằm mục đích hỗ trợ các chế độ tiết kiệm năng lượng khác nhau. Sự cải tiến này bao gồm định nghĩa các bản tin mới theo chuẩn giao thức OpenFlow, thiết kế bộ điều khiển các chuyển mạch OpenFlow (OSC) có khả năng bật tắt các bộ chuyển mạch và các port. Hơn nữa, nhóm tác giả đã tích hợp các cải tiến này lên chính các bộ chuyển mạch OpenFlow trên nền tảng phần cứng khả trình NetFPGA trong khuôn khổ dự án ECODANE1. Các kết quả được trình bày trong đồ án này có thể được sử dụng bởi các nhà sản xuất chuyển mạch OpenFlow hoặc những nhà nghiên cứu về năng lượng tiêu thụ của các thiết bị mạng.
Trang 1ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:
NGHIÊN CỨU GIẢI PHÁP PHẦN CỨNG TIẾT KIỆM NĂNG LƯỢNG TRONG TRUNG TÂM
DỮ LIỆU
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Sinh viên thực hiện : LÊ THÁI HƯNG
NGUYỄN DUY LINH
LÊ ANH VĂN Lớp KSTN- ĐTVT- K52
Giảng viên hướng dẫn : TS TRẦN NGỌC LAN
TS TRẦN MINH TRUNG
TS NGUYỄN XUÂN DŨNG
Hà Nội, 06-2012
Trang 2ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Sinh viên thực hiện : LÊ THÁI HƯNG
NGUYỄN DUY LINH
LÊ ANH VĂN Lớp KSTN- ĐTVT- K52
Giảng viên hướng dẫn : TS TRẦN NGỌC LAN
TS TRẦN MINH TRUNG
TS NGUYỄN XUÂN DŨNG Cán bộ phản biện :
Hà Nội, 06-2012
Trang 3NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Lê Thái Hưng Số hiệu sinh viên: 20072451
Nguyễn Duy Linh Số hiệu sinh viên: 20071721
Khoá: K52 Viện: Điện tử - Viễn thông Ngành: Điện tử-Viễn thông
Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày tháng năm
Cán bộ phản biện
Trang 4BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Số hiệu sinh viên:
Ngành: Khoá:
Giảng viên hướng dẫn:
Cán bộ phản biện:
1 Nội dung thiết kế tốt nghiệp:
2 Nhận xét của cán bộ phản biện:
Ngày tháng năm
Cán bộ phản biện
( Ký, ghi rõ họ và tên )
Trang 5LỜI NÓI ĐẦU
Ngày nay, các trung tâm dữ liệu đóng vai trò quan trọng trong các hoạt độngthường ngày của các tổ chức như trường học, doanh nghiệp, viện nghiên cứu.Những trung tâm dữ liệu này cùng với sự phát triển không ngừng của xã hội đangtăng lên nhanh chóng về cả quy mô và số lượng Số lượng máy chủ trong mỗi trungtâm dữ liệu đang tăng lên rất nhanh chóng để đáp ứng nhu cầu trao đổi thông tinmọi người trong xã hội Do đó một điều tất yếu là số lượng các thiết bị chuyểnmạch để kết nối các máy chủ lại với nhau cũng phải tăng lên Điều này làm cho nhucầu về điện năng tiêu thụ bởi các trung tâm dữ liệu ngày càng tăng lên tỉ lệ với kíchthước của các trung tâm này Và bài toán được đặt ra cho các nhà nghiên cứu và cácnhà 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 trungtâm dữ liệu này mà khả năng xử lý thông tin vẫn được đảm bảo Từ yêu cầu thực tếtrên, nhóm tác giả đã nghiên cứu và chế tạo thành công thiết bị điểu khiển giúp tiếtkiệm năng lượng cho các bộ chuyển mạch trong trung tâm dữ liệu và cũng đã chếtạo thành công các bộ chuyển mạch có khả năng tự tiết kiệm năng lượng Những kếtquả đạt được đã và đang mở ra một hướng đi mới rất khả thi cho việc phát triển, sảnxuất đại trà các thiết bị mạng tiết kiệm năng lượng cũng như giúp các nhà quản lýtrung tâm dữ liệu theo dõi công suất tiêu thụ của toàn trung tâm dữ liệu, mức tiếtkiệm năng lượng
Sau một thời gian lao động miệt mài, nhóm tác giả đã hoàn thành đồ án với
đề tài:“Nghiên cứu giải pháp phần cứng tiết kiệm năng lượng cho các trung tâm dữ liệu”
Nhờ những cố gắng không ngừng, tác giả đã gặt hái được một số kết quảnhất định Mặc dù vậy, do thời gian có hạn nên một số ý tưởng vẫn chưa được thựchiện và kết quả nghiên cứu không tránh khỏi một vài sai sót nhỏ Vì vậy, tác giả rấtmong nhận được ý kiến đóng góp của các thầy cô giáo và bạn bè
Tác giả xin được gửi lời cảm ơn chân thành, sâu sắc tới:
Cô giáo TS Trần Ngọc Lan
Thầy giáo TS Trần Minh Trung
Thầy giáo TS Nguyễn Xuân Dũng
NETFPGA GROUP-KSTN-ĐTVT-K52 5
Trang 6 Thầy giáo TS Phạm Ngọc Nam
Thầy giáo PGS.TS Nguyễn Hữu Thanh
Cô giáo TS Trương Thu Hương
Các bạn K51, K52, K53 trong nhóm OpenFlow
Tập thể lớp KSTN-ĐTVT-K52
Viện Điện Tử - Viễn Thông, trường ĐH Bách Khoa Hà Nội
Cùng toàn thể gia đình và bạn bè
đã giúp đỡ và tạo mọi điều kiện thuận lợi cho tác giả trong quá trình nghiên cứu
Đồ án được thực hiện trong khuôn khổ của dự án “Giảm điện năng tiêu
thụ của mạng cơ sở dữ liệu dựa trên kĩ thuật lưu lượng (ECODANE)“ do
PGS.TS Nguyễn Hữu Thanh chủ trì.
Sinh viên thực hiện: LÊ THÁI HƯNG
NGUYỄN DUY LINH
LÊ ANH VĂN
NETFPGA GROUP-KSTN-ĐTVT-K52 6
Trang 7kế bộ điều khiển các chuyển mạch OpenFlow (OSC) có khả năng bật tắt các bộchuyển mạch và các port Hơn nữa, nhóm tác giả đã tích hợp các cải tiến này lênchính các bộ chuyển mạch OpenFlow trên nền tảng phần cứng khả trình NetFPGAtrong khuôn khổ dự án ECODANE[1] Các kết quả được trình bày trong đồ án này
có thể được sử dụng bởi các nhà sản xuất chuyển mạch OpenFlow hoặc những nhànghiên cứu về năng lượng tiêu thụ của các thiết bị mạng
NETFPGA GROUP-KSTN-ĐTVT-K52 7
Trang 8“Reseaching hardware solution for energy saving in Data centers”
Data centers play an important role in our daily activities The increasingdemand for data centers in both scale and size has led to huge energy consumption.The cost and environmental impact of data centers increases due to large amounts
of carbon emissions One solution to this problem is to intelligently control thepower consumption of switches used in data centers This thesis proposes anextension to OpenFlow switches to support different power saving modes Theextension includes defining new messages in OpenFlow standard and designing anOpenFlow Switch Controller (OSC) that is able to turn on/off switches anddisable/enable ports Furthermore, the extension is integrated into the NetFPGAbased OpenFlow switches in the ECODANE[1] framework That brings anopportunity of producing self-power aware OpenFlow switches The resultspresented in this thesis can aslo be used by the OpenFlow compliant switchesmanufacturer or by power aware research community
NETFPGA GROUP-KSTN-ĐTVT-K52 8
Trang 9MỤC LỤC
NETFPGA GROUP-KSTN-ĐTVT-K52 9
Trang 10DANH MỤC HÌNH VẼ
NETFPGA GROUP-KSTN-ĐTVT-K52 10
Trang 11DANH MỤC BẢNG BIỂU
NETFPGA GROUP-KSTN-ĐTVT-K52 11
Trang 12CÁC THUẬT NGỮ VIẾT TẮT
Từ viết tắt Thuật ngữ tiếng anh Thuật ngữ tiếng việt
CC Clock Controller Bộ điều khiển tín hiệu Clock CLB Configurable Logic Block Khối logic có thể lập trình
được DCM Digital Clock Manager Khối quản lý xung đồng hồ DRAM Dynamic Random Access
Memory
Bộ nhớ truy cập ngẫu nhiên động
FPGA Field Programmable Gate Array Mảng cổng khả trình
IOB Input Output Block Khối vào ra
MAC Media Access Control Điều khiển truy nhập thiết bị NCD Native Circuit Description Phần mở rộng của file thiết kế
OF SW OpenFlow Switch Bộ chuyển mạch OpenFlow OSC OpenFlow Switch Controller Mạch điều khiển các bộ
chuyển mạch OpenFlow PCF Physical Constraint File Phần mở rộng của file ràng
buộc vật lý PCI Peripheral Component Inter-
tĩnh VCD Value Change Dump Phần mở rộng của file mô
phỏng
NETFPGA GROUP-KSTN-ĐTVT-K52 12
Trang 13Trong đồ án này, tác giả sẽ tập trung giải quyết các vấn đề chính sau: Mô tảcấu trúc của chuyển mạch OpenFlow; xây dựng mạng OpenFlow trên nền tảngNetFPGA; các giải pháp tiết kiệm năng lượng cho các bộ chuyển mạch OpenFlow;
đo đạc trên thực tế và đánh giá từng phương pháp
Nội dung của đồ án được chia thành sáu chương, gồm ba phần chính:
Phần “Tìm hiểu thực trạng và giải pháp mạng OpenFlow” gồm hai chương:
Chương 1: Nêu thực trạng về vấn đề năng lượng trong các trung tâm dữ liệu
và giải pháp sử dụng mạng OpenFlow do Lê Anh Văn thực hiện
Chương 2: Tìm hiểu một cách tổng quát công nghệ mạch tổ hợp FPGA, về
bộ chuyển mạch OpenFlow trên nền tảng phần cứng NetFPGA Chương này
do Nguyễn Duy Linh và Lê Thái Hưng thực hiện
Phần “Nghiên cứu giải pháp tiết kiệm năng lượng trên thực tế” gồm ba chương:
Chương 3: Triển khai hệ thống mạng OpenFlow trên nền tảng NetFPGA
trong thực tế phòng thí nghiệm do Lê Thái Hưng và Nguyễn Duy Linh thựchiện
Chương 4: Thiết kế bộ điều khiển chuyển mạch OpenFlow dựa trên thực tế
hệ thống đã triển khai Chương này do Lê Thái Hưng và Lê Anh Văn thựchiện
Chương 5: Thiết kế chuyển mạch OpenFlow tiết kiệm năng lượng và thực
hiện trên các bộ chuyển mạch thực tế đã triển khai
Phần “Đo đạc, kiểm thử và đánh giá kết quả đạt đươc” gồm một chương:
Chương 6: Triển khai hệ thống mới với các thiết bị đã được tạo ra, đo đạc và
đánh giá các kết quả trên thực tế phòng thí nghiệm
Trang 14Chương 1 Vấn đề tiết kiệm năng lượng trong trung tâm dữ liệu và giải pháp sử dụng mạng
OpenFlow
Sinh viên: Lê Anh Văn
Chương này sẽ giải thích nhu cầu tiết kiệm năng lượng cho các trung tâm dữliệu Đồng thời, một giải pháp hoàn toàn mới cho khó khăn đó sẽ được đưa ra dựavào công nghệ mạng mới đang được phát triển rất nhanh chóng trong thời gian gầnđây: Đó là mạng điều khiển bằng phần mềm dựa trên giao thức OpenFlow
Các khái niệm, định nghĩa và mô hình chung nhất về mạng này cùng giaothức OpenFlow sẽ giúp người đọc có một cái nhìn tổng quan về mục tiêu mà đồ ánhướng tới; cùng với đó là một xu hướng phát triển của mạng trong tương lai
1.1 Vấn đề tiết kiệm năng lượng cho trung tâm dữ liệu
Có thể nói rằng hiện nay các trung tâm dữ liệu đang tiêu tốn một năng lượngkhổng lồ để duy trì hoạt động của nó.Theo một nghiên cứu cho thấy rằng chi phínăng lượng chiếm tới 44% chi phí hoạt động của trung tâm dữ liệu Năng lượng tiêuthụ ở đây bao gồm có năng lượng cho các server, các thiệt bị mạng, cho hệ thốnglàm lạnh, line-cards, switching fabric, các hệ thống theo dõi và các hệ thống phụ trợkhác Những tìm hiểu về năng lượng trong mạng trung tâm dưới đây được tham
khảo trong bài báo “Energy Aware Network Operations” [2], chỉ đề cập đến mô
hình năng lượng tiêu thụ của switch và một chủ đề đang được nhiều nhà phát triểnquan tâm đó là các giải pháp tiết kiệm năng lượng tiêu thụ trong mạng trung tâm dữliệu
Các switch và router hiện tại không cho ta biết đầy đủ các thông số nănglượng tiêu thụ của chúng Datasheet của các thiết bị này chỉ cho biết giá trị côngsuất hoạt động tối đa Giá trị này không đủ để hiểu chính xác năng lượng tiêu thụthật của các thiết bị mạng Năng lượng tiêu thụ thật sự của các switch/router phụthuộc vào rất nhiều yếu tố như cấu hình của thiết bị và lượng tải mà thiết bị cần xử
lý, do đó chỉ dựa vào công suất tiêu thụ tối đa sẽ không thể tính toán chính xác được
Trang 15năng lượng tiêu thụ thật Cấu hình thiết bị và lưu lượng thông tin đi qua sẽ ảnhhưởng đến công suất tiêu thụ của các thiết bị mạng.
Mỗi một switch/router đều chứa nhiều thành phần cấu tạo khác nhau như:chassis, linecard, TCAM (Ternary Content Addressable Memory), RAM, processor,quạt… Một switch/router đặc trưng gồm một chassis (có thể hiểu là bộ khung củaswitch) chứa các slot cắm các linecard, mỗi linecard chứa nhiều port (cổng mạng)chính là các cổng giao tiếp của switch/router với các switch/router khác hoặc vớicác máy tính khác Việc đo thông số năng lượng tiêu thụ của tất cả các thành phầntrong switch một cách toàn diện rất khó để thực hiện Dưới đây là các yếu tố quantrọng ảnh hưởng đến công suất tiêu thụ của switch/router:
• Công suất tiêu thụ của chassis: Các switch hiệu năng cao chứa một chassis
và một số lượng cố định các khe cắm (slot) dùng để cắm các linecard Đốivới các switch hiệu năng thấp hơn (các switch phổ thông với 24 cổng trởxuống), các slot và linecard được gắn cố định, không thể thay đổi Trong cảhai trường hợp, công suất tiêu thụ cơ bản của chassis là tổng công suất tiêuthụ của một số thành phần khác nhau của switch như processor, quạt,memory…
• Số lượng linecard: số lượng cổng của một linecard và tổng lưu lượng thôngtin mà nó có thể xử lý là có hạn Cơ chế cắm và rút các linecard trên các kheslot của switch cho phép các nhà quản lý mạng linh động cắm số lượnglinecard cần thiết linh động đáp ứng nhu cầu về tải Hơn nữa, cơ chế đó cũngđưa ra nhiều lựa chọn cho việc cắm loại linecard phù hợp, ví dụ như cắm mộtlinecard 24 cổng 1Gbps để có khả năng xử lý lưu lượng 24Gbps, hay cắmmột linecard 4 cổng 10Gbps để có khả năng xử lý lưu lượng 40 Gbps
• Số lượng active cổng: thuật ngữ này đề cập tới tổng số cổng trên switch (củatất cả các linecard) ở trạng thái hoạt động (active) Các cổng còn lại trênswitch được tắt đi thông qua giao diện câu lệnh hỗ trợ tắt bật đưa ra từ nhàsản xuất
• Công suất xử lý tối đa của một cổng (port capacity) hay tốc độ hoạt động tối
đa của một cổng: ta có thể thay đổi thông số công suất xử lý tối đa của mỗicổng để giới hạn tốc độ xử lý thông tin của cổng đó Ví dụ, công suất xử lý
Trang 16tối đa của một cổng full-duplex 1Gbps có thể được cấu hình xuống 100Mbpshay 10Mbps Việc thay đổi công suất xử lý tối đa này sẽ ảnh hưởng đến nănglượng tiêu thụ nói chung của switch Khi giảm công suất xử lý tối đa, nănglượng tiêu thụ của cổng sẽ giảm, dẫn đến năng lượng tiêu thụ của cả switchnói chung giảm theo.
• Hiệu suất sử dụng của cổng (port utilization): thuật ngữ này mô tả thônglượng thật chảy qua một cổng so với công suất xử lý tối đa của cổng đó Ví
dụ trong trường hợp công suất xử lý tối đa của một cổng là 100Mbps, thônglượng dữ liệu đi qua cổng đó là 10Mbps, khi đó hiệu suất sử dụng của cổng
đó (hay port utilization) là 10% Phụ thuộc vào hiệu suất sử dụng của cổng
mà ta có thể thiết lập các giá trị công suất xử lý tối đa của cổng đó một cáchphù hợp Ví dụ, nếu một cổng phải xử lý 60 Mbps lưu lượng, khi đó ta sẽthiết lập công suất xử lý tối đa của switch là 100 Mbps để có hiệu quả sửdụng năng lượng một cách tốt nhất
• TCAM: hầu hết các switch thực hiện việc phân loại packet trên phần cứng vàhầu hết các nhà sản xuất sử dụng TCAM để thực hiện chức năng này do thờigian xử lý tìm kiếm của TCAM là rất nhanh Tuy nhiên, TCAM tiêu thụ mộtlượng công suất lớn Ngoài ra, kích thước TCAM trong các switch cũng khácnhau
• Firmware: các nhà sản xuất cập nhật firmware cho switch/router theo định
kỳ Các phiên bản firmware khác nhau cũng có thể ảnh hưởng tới công suấttiêu thụ của switch/router
Ngoài ra, đặc tính lưu lượng thông tin đi qua mỗi cổng cũng có thể ảnhhưởng tới công suất tiêu thụ của cổng đó Hai đặc tính quan trọng nhất của lưulượng của một flow là kích thước mỗi gói tin và khoảng thời gian giữa hai gói tinliên tiếp
Trang 17Bảng 1.1: Công suất tiêu thụ của switch ở các cấu hình khác nhau
Cofiguration Rack switch (in Watts ) Tier-2 switch (in Watts )
0 (include in chassis power)
là số linecard của switch
là công suất tiêu thụ của một cổng chạy ở tốc độ i.
là số cổng chạy ở tốc độ i
i: có thể có các giá trị 10Mbps, 100 Mbps hay 1Gbps.
Qua Bảng 1.1 [2] ta thấy đối với Rack switch (các switch thường công suất
xử lý thấp, ít hơn 24 cổng), do các linecard được gắn cố định, không thay đổi đượcnên công suất tiêu thụ của chassis chính là công suất tiêu thụ cơ bản và cố định củaswitch khi switch được bật mà không xử lý bất cứ một lượng lưu lượng nào, côngsuất tiêu thụ của linecard khi đó được bao gồm trong công suất tiêu thụ của chassis.Mặt khác đối với các chuyển mạch tầng hai có công suất xử lý cao hơn, số lượngcác linecard có thể thay đổi bằng cách cắm/rút các linecard vào/ra các slot, nênkhông thể tính gộp vào công suất tiêu thụ của chassis Trong trường hợp này, mỗilinecard được cắm thêm vào, công suất tiêu thụ của switch sẽ tăng thêm 39W Tuynhiên, trong cả hai trường hợp ta có thể thấy công suất tiêu thụ của các cổng trênswitch phụ thuộc vào cấu hình tốc độ hoạt động của các cổng đó Tốc độ hoạt độngtăng, công suất tiêu thụ của cổng cũng tăng lên
Trang 18Ngoài ra, ta có thể quan sát thấy công suất tiêu thụ của chassis chiếm phầnlớn công suất tiêu thụ của switch, nên việc tắt các switch không sử dụng (không cólưu lượng đi qua) sẽ mang lại lợi ích lớn nhất Lấy ví dụ một switch thường 24cổng, khi không có lưu lượng đi qua sẽ tiêu thụ 146W, trong khi công suất tiêu thụtối đa khi lượng lưu lượng tối đa qua (mỗi cổng đặt ở tốc độ hoạt động 1Gbps),công suất tiêu thụ của switch sẽ là: 146+0.87*24=167W Nếu ta không tắt switchkhi không có lưu lượng đi qua, switch sẽ luôn tiêu thụ một lượng công suất nền rấtlớn: 146W.
Dựa vào đặc tính tiêu thụ năng lượng của các switch, phần tiếp theo sẽ trìnhbày một số kỹ thuật được dùng trong tiết kiệm năng lượng tiêu thụ của các thiết bịmạng trong trung tâm dữ liệu
1.2 Giải pháp sử dụng mạng OpenFlow
1.2.1 Sự cần thiết cho một kiến trúc mạng mới
Sự bùng nổ của các thiết bị và nội dung di động, ảo hóa máy chủ, và sự rađời của dịch vụ điện toán đám mây là một trong những xu hướng thúc đẩy cácngành công nghiệp mạng xem xét lại kiến trúc mạng truyền thống Hầu hết cácmạng thông thường đều theo kiến trúc phân cấp, được xây dựng với các tầng củathiết bị chuyển mạch Ethernet được sắp xếp theo cấu trúc cây Thiết kế này thực sựhiệu quả khi mô hình tính toán client-server chiếm ưu thế, nhưng kiến trúc cố địnhnhư vậy 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ưutrữ dữ liệu ngày nay tại các trung tâm dữ liệu của doanh nghiệp, trường học, vàtrong môi trường của các nhà cung cấp dịch vụ Một trong số những xu hướng tínhtoán quan trọng dẫn tới yêu cầu ngày càng tăng cho một mô hình mạng mới baogồm:
• Sự thay đổi mô hình lưu lượng
• Hướng người dùng CNTT (Công nghệ thông tin)
• Sự phát triển của các dịch vụ điện toán đám mây
• “Dữ liệu lớn” yêu cầu nhiều băng thông hơn
Trang 191.2.2 Mục tiêu của mạng OpenFlow
Đáp ứng yêu cầu thị trường hiện nay là hầu như không thể với kiến trúcmạng truyền thống Đối mặt với ngân sách không đổi hoặc giảm, các doanh nghiệpngành CNTT đang cố gắng để tận dụng tối đa khả năng mà mạng của họ co thể đápứng bằng cách sử dụng các công cụ quản lý ờ mức thiết bị và các quy trình thủcông Các hãng cung cấp dịch vụ cũng phải đối mặt với những thách thức tương tựnhư yêu cầu về tính di động cũng như sự bùng nổ băng thông, lợi nhuận đang bị xóimòn bởi chi phí vốn cho thiết bị leo thang và doanh thu không tang hoặc suy giảm.Kiến trúc mạng hiện tại không được thiết kế để đáp ứng các yêu cầu ngày nay củangười sử dụng, doanh nghiệp, và nhà cung cấp dịch vụ, những hạn chế của mạnghiện tại bao gồm:
• Độ phức tạp cao gây tắc nghẽn
• 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ị
Chính vì lý do trên, các nhà nghiên cứu đã đưa ra giải pháp: Mạng điều khiểnbằng phần mềm (Software-Defined Networking)
Mạng điều khiển bằng phần mềm (SDN) là một kiến trúc mạng mới pháttriển trong thời gian gần đây, trong đó việc điều khiển mạng được tách rời khỏi việcchuyển tiếp và có thể được lập trình Khác với trước đây khi còn bị ràng buộc chặtchẽ trong từng thiết bị mạng đơn lẻ, điều khiển mạng sử dụng các thiết bị tính toán
có thể truy cập (accessible computing device) cho phép cơ sở hạ tầng cơ bản đượctrừu tượng hóa cho các ứng dụng và dịch vụ mạng, hay là các ứng dụng và dịch vụ
sẽ coi mạng như một thực thể hợp thống nhất
Hình 1.1 mô tả kiến trúc luận lý của SDN[3] Thông tin về mạng được tậptrung trong phần mềm điều khiển SDN có chức năng kiểm soát toàn bộ mạng Kếtquả là, hình ảnh của mạng đối với các ứng dụng và các công cụ quản lý giống như
là một chuyển mạch luận lý đơn nhất Với SDN, doanh nghiệp và ngưởi sử dụng cóthể điều hành toàn bộ mạng từ một điểm luận lý duy nhất, không phụ thuộc vào nhàcung cấp thiết bị, điều này giúp đơn giản hóa thiết kế và hoạt động của mạng rất
Trang 20nhiều SDN cũng góp phần tối ưu hóa các thiết bị mạng, bởi vì các thiết bị mạngkhông còn cần phải hiểu và xử lý hàng ngàn các chuẩn giao thức khác nhau mà chỉcòn xử lý các lệnh từ bộ điều khiển SDN.
Hình 1.1 Kiến trúc mạng điều khiển bằng phần mềm
Nhưng quan trọng nhất, nhà khai thác mạng và quản trị viên có thể trình cấuhình mạng được trừu tượng hóa đơn giản hơn so với việc phải lập trình hàng chụcngàn dòng cấu hình phân tán trong số hàng ngàn các thiết bị mạng đơn lẻ Ngoài ra,tận dụng các thông tin được tập trung trong tại bộ điều khiển SDN, người quản trị
có thể thay đổi hoạt động mạng theo thời gian thực, triển khai các ứng dụng và dịch
vụ mới mạng trong vài giờ hoặc vài ngày, chứ không còn là vài tuần hoặc vài thángnhư hiện nay Bằng cách thu thập tình trạng của mạng trong các lớp điều khiển(control layer), SDN cung cấp cho nhà quản lý mạng các phương pháp linh hoạt đểcấu hình, quản lý, bảo mật, và tối ưu hóa tài nguyên mạng thông qua các phần mềm
tự động SDN
Hơn nữa, các nhà quản lý có thể tự viết các chương trình này mà không phảichờ đợi các nhà cung cấp sẽ nhúng các tính năng này vào các sản phẩm của họ kèmtheo các công cụ phần mềm độc quyền Ngoài việc trừu tượng hóa mạng, kiến trúc
Trang 21SDN hỗ trợ một tập hợp các hàm API cho phép thực hiện các dịch vụ mạng thôngthường, bao gồm định tuyến, multicast, an ninh, kiểm soát truy cập, quản lý băngthông, quản lý traffic, chất lượng, dịch vụ, tối ưu hóa các bộ vi xử lý và lưu trữ, sửdụng năng lượng, và các hình thức quản lý chính sách, tùy chỉnh cho phù hợp đểđáp ứng các mục tiêu kinh doanh Ví dụ, kiến trúc SDN cho phép định nghĩa vàthực thi chính sách nhất quán một cách dễ dàng cho cả kết nối có dây và không dâytrong khuôn viên trường.
Tương tự như vậy, SDN cho phép quản lý toàn bộ mạng thông qua hệ thốn
dự phòng và đồng bộ thông minh Open Networking Foundation đang nghiên cứucác API mở để thúc đẩy việc quản lý đa nhà cung cấp, mở ra cánh cửa cho các tínhnăng phân bổ tài nguyên theo yêu cầu, self-service provisioning, mạng ảo hóa thực
sự, và các dịch vụ đám mây an toàn
Như vậy, với các hàm API mở nằm giữa bộ điều khiển SDN và các lớp ứngdụng, các ứng dụng thực tế có thể hoạt động trên lớp trừu tượng của mạng,tận dụngcác dịch vụ và khả năng của mạng mà không bị ràng buộc vào các chi tiết khi thựchiện SDN làm cho mạng không còn phải "application-aware" như là "application-customized" và các ứng dụng cũng không cần thiết "network-aware" đến mức
"network-capability-aware" Kết quả là, từ việc tính toán, lưu trữ, tài nguyên mạng
có thể được tối ưu hóa
1.2.3 Giao thức OpenFlow
Giao thức OpenFlow là giao diện truyền thông đầu tiên được sử dụng giữalớp kiểm soát và các lớp chuyển tiếp trong kiến trúc SDN OpenFlow cho phép trựctiếp truy cập và thao tác trên phần chuyển mạch của các thiết bị mạng chẳng hạnnhư chuyển mạchvà router, trong cả hai trường hợp luận lý và ảo Chính sự thiếuhụt của một giao diện mở cho phần chuyển mạch đã dẫn tới các đặc tính của cácthiết bị mạng bây giờ như: chia thành nhiều khối riêng biệt, đóng và giống như cácmáy mainframe Thực tế hiện nay vẫn chưa xuất hiện một giao thức tiêu chuẩn nào
có cùng chức năng như giao thức OpenFlow,và sự ra đời một giao thức giống như
Trang 22OpenFlow là cần thiết để chuyển công việc điều khiển mạng chuyển mạch lên cácphần mềm điều khiển tập trung hợp lý.
OpenFlow có thể được so sánh với tập lệnh của CPU Như thể hiện trên Hình1.2 [3], giao thức này xác định các thành phần cơ bản có thể được sử dụng bởi mộtứng dụng phần mềm bên ngoài để lập trình cho phần chuyển mạch của các thiết bịmạng, điều này giống như tập lệnh của CPU với một hệ thống máy tính
Hình 1.2 Ví dụ về tập lệnh của OpenFlow
Các giao thức OpenFlow được thực hiện trên cả hai mặt của giao diện giữacác thiết bị cơ sở hạ tầng mạng và phần mềm điều khiển SDN OpenFlow sử dụngkhái niệm về các luồng (Flow) để xác định lưu lượng truy cập mạng dựa trên quytắc được xác định trước - có thể được lập trình cố định hay thay đổi trong phầnmềm điều khiển SDN Giao thức này cũng cho phép người sử dụng xác định cáchlưu lượng mạng được phân theo luồng thông qua các thiết bị mạng dựa trên cácthông số như mô hình sử dụng, ứng dụng, và tài nguyên điện toán đám mây VìOpenFlow hướng tới mạng được lập trình trên cơ sở hướng tới từng luồng, do đómột kiến trúc mạng SDN dựa trên OpenFlow hỗ trợ kiểm soát rất chi tiết tới tất cảcác khía cạnh, cho phép mạng có thể đáp ứng theo thời gian thực với sự thay đổi ởcác cấp độ ứng dụng, người sử dụng, và phiên Định tuyến dựa trên IP hiện tạikhông cung cấp mức độ kiểm soát chặt chẽ đến như vậy, bởi vì tất cả các luồng giữa
Trang 23hai thiết bị đầu cuối luôn phải theo cùng một con đường thông qua mạng, bất kểchúng có yêu cầu khác nhau hay không
Giao thức OpenFlow là một nhân tố quan trọng trong Mạng điều khiển bằngphần mềm và là giao thức SDN tiêu chuẩn hóa duy nhất hiện nay, cho phép trựctiếp thao tác trên phần chuyển mạch của các thiết bị mạng Ban đầu khi áp dụng chocác mạng Ethernet-based, việc chuyển đổi sang OpenFlow có thể mở rộng đến tậphợp rộng lớn hơn nhiều các trường hợp Mạng SDN dựa trên OpenFlow có thể đượctriển khai trên các mạng hiện có, cả vật lý và ảo Thiết bị mạng có thể hỗ trợ việcchuyển tiếp các gói tin OpenFlow cũng như chuyển tiếp gói tin truyền thống, điềunày khiến cho các doanh nghiệp và người sử dụng dễ dàng tiếp cận đến mạng SDNdựa trên OpenFlow, ngay cả trong môi trường mạng thiết lập bởi nhiều nhà cungcấp
Tổ chức Open Networking Foundation chịu trách nhiệm tiêu chuẩn hóaOpenFlow thông qua các nhóm kỹ thuật làm việc trên nhiều mảng như giao thức,cấu hình, khả năng tương tác, và các hoạt động khác, giúp đảm bảo khả năng tươngtác giữa các thiết bị mạng và phần mềm kiểm soát từ các nhà cung cấp khác nhau.OpenFlow được chấp nhận rộng rãi bởi các nhà cung cấp cơ sở hạ tầng mạng, thôngqua các bản nâng cấp phần mềm hoặc firmware đơn giản Kiến trúc mạng SDN dựatrên OpenFlow có thể được tích hợp liền mạch với cơ sở hạ tầng hiện có của mộtdoanh nghiệp hoặc người sủ dụng, tạo ra một hướng chuyển đổi đơn giản trênnhững thành phần mạng mà tại đó cần các chức năng của mạng SDN nhất
1.2.4 Lợi ích của mạng SDN dựa trên giao thức OpenFlow
Đối với doanh nghiệp và nhà cung cấp, công nghệ của mạng SDN dựa trênOpenFlow cho phép các kĩ sư công nghệ thông tin giải quyết các vấn đề liên quantới băng thông cao, tính chất thay đổi của các ứng dụng ngày nay, chuyển đổi mạngcho phù hợp với các yêu cầu làm việc luôn thay đổi, và làm giảm đáng kể độ phứctạp của hoạt động điều hành và quản lý mạng Các lợi ích mà doanh nghiệp và cáchãng có thể đạt được thông qua kiến trúc mạng SDN dựa trên OpenFlow bao gồm:
• Tập trung hóa việc điều khiển trong môi trường mạng của nhiều nhà cung cấp: Phần mềm điều khiển có SDN thể kiểm soát bất kỳ thiết bị mạng
Trang 24hỗ trợ OpenFlow từ bất kỳ nhà cung cấp nào, bao gồm thiết bị chuyển mạch,định tuyến và chuyển mạch ảo Thay vì phải quản lý từng nhóm thiết bị từcác nhà cung cấp riêng lẻ, nhà quản lý có thể sử dụng đồng bộ các thiết bị vàcác công cụ quản lý dựa trên SDN để nhanh chóng triển khai, cấu hình vàcập nhật các thiết bị trong toàn bộ mạng.
• Giảm độ phức tạp thông qua tự động hóa: Mạng SDN dựa trên giao thức
OpenFlow cung cấp các công cụ (framework) giúp tự động hóa và quản lýmạng một cách linh hoạt, điều này hỗ trợ nhà quản lý có thể phát triển cáccông cụ giúp thực hiện các tác vụ quản lý một cách tự động hóa thay vì tựmình thực hiện như hiện tại Những công cụ tự động hóa này sẽ làm giảm chiphí hoạt động, tối thiểu sự bất ổn định trong mạng gây ra bởi lỗi trong việcđiều hành, và hỗ trợ các mô hình triển khai tự phục vụ (self-serviceprovisioning models) Ngoài ra, với mạng SDN, các ứng dụng dựa trên điệntoán đám mây có thể được quản lý thông qua hệ thống triển khai và đồng bộthông minh, giúp giảm thiểu hơn nữa chi phí vận hành đồng thời tăng tínhlinh hoạt trong công việc
• Tốc độ đổi mới cao hơn: Sử dụng mạng SDN làm tăng khả năng đổi mới
trong công việc bằng cách cho phép nhà vận hành mạng có thể thực sự lậptrình và lập trình lại mạng theo thời gian thực để đáp ứng nhu những yêu cầucông việc đặc biệt và nhu cầu phát sinh của người sử dụng Bằng cách ảo hóa
và trừu tượng hóa cơ sở hạ tầng mạng từ các dịch vụ mạng đơn lẻ, ví dụ,SDN và OpenFlow cung cấp cho nhà quản lý và có thể ngay cả người dùngkhả năng để điều chỉnh hoạt động của mạng và ứng dụng các dịch vụ mớicũng như các tính năng mới của mạng trong vòng vài giờ
• Tăng cường độ tin cậy và an ninh mạng: SDN cho phép các nhà quản lý tự
định nghĩa các cấu hình cấp cao (high-level configuration) và chính sáchtrong mạng, điều này được chuyển xuống cơ sở hạ tầng thông quaOpenFlow Kiến trúc mạng SDN dựa trên OpenFlow loại bỏ nhu cầu phảicấu hình cho từng thiết bị mạng đơn mỗi thời gian mỗi khi một đầu cuối (endpoint), dịch vụ, hoặc ứng dụng được thêm vào loại bỏ, hay khi thay đổi chínhsách, điều này làm giảm thiểu khả năng phát sinh lỗi trong mạng do xung độtcấu hình hoặc chính sách
Trang 25Bởi vì bộ điều khiển mạng SDN cung cấp khả năng hiển thị đầy đủ và kiểmsoát qua mạng, đo đó đảm bảo rằng việc kiểm soát truy cập, lưu lượng, chấtlượng dịch vụ, an ninh, và các chính sách khác được thực thi nhất quán trên
cơ sở hạ tầng mạng có dây và không dây, bao gồm cả các chi nhánh vănphòng, trường học, và trung tâm dữ liệu Doanh nghiệp và các nhà khai thác
có thể được hưởng lợi ích từ giảm chi phí hoạt động, khả năng cấu hình linhhoạt hơn, ít lỗi, thực thi chính sách và cấu hình thống nhất
• Trải nghiệm người dùng tốt hơn: Bằng cách tập trung hóa điều khiển mạng
và đảm bảo thông tin trạng thái sẵn sàng cho các ứng dụng cấp cao hơn, cơ
sở hạ tầng mạng SDN có thể thích ứng với nhu cầu đa dạng của người sửdụng một cách tốt hơn Ví dụ, một nhà cung cấp dịch vụ có thể giới thiệumột dịch vụ video mà nó cung cấp cho các thuê bao cao cấp xem hình với độphân giải lớn nhất có thể một cách tự động và thông suốt Thực tế, người sửdụng hoàn toàn có thế chọn một cấu hình độ phân giải mà điều kiện mạng cóthể hoặc không thể đáp ứng, dẫn đến trễ và gián đoạn làm giảm trải nghiệmngười dùng Với mạng SDN dựa trên OpenFlow, các ứng dụng video có thể
tự nhận diện băng thông cho phép trong mạng theo thời gian thực và tự độngđiều chỉnh độ phân giải video cho phù hợp
1.1 Kết luận chương
Tóm lại, các xu hướng mới như 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ệnkinh doanh luôn thay đổi đặt ra ngày nhiều yêu cầu lên hệ thống mạng, và rất nhiềutrong số đó kiến trúc mạng thông thường hiện nay không thể đảm đươngđược Mạng điều khiển bằng phần mềm cung cấp một kiến trúc mạng mới, năngđộng, có khả năng thay đổi mạng xương sống truyền thống sang một nền tảng hứahẹn cung cấp dịch vụ phong phú hơn rất nhiều
Tương lai của mạng sẽ dựa nhiều hơn và nhiều hơn nữa trên phần mềm, việcnày sẽ giúp đẩy nhanh tốc độ đổi mới cho hệ thống mạng như nó đã từng xảy ratrong lĩnh vực máy tính và lưu trữ SDN hứa hẹn sẽ biến đổi mạng cố định ngàyhôm nay thành nền tảng khả trình với khả năng phân bổ nguồn lực một cách năng
Trang 26động, trở nên linh hoạt hơn, đủ quy mô để hỗ trợ các trung tâm dữ liệu khổng lồ với
sự ảo hóa cần thiết cho một môi trường điện toán đám mây tự động hóa cao, năngđộng, và an toàn Sở hữu nhiều lợi thế và tiềm năng công nghiệp hấp dẫn,mạng SDN đang trên đường để trở thành một chuẩn mực mới cho mạng trong tươnglai
Trang 27Chương 2 Ứng dụng mạng OpenFlow trong trung
tâm dữ liệu trên nền tảng NetFPGA
Sinh viên: Nguyễn Duy Linh
Lê Thái Hưng
Bộ chuyển mạch OpenFlow được chia làm hai loại là bộ chuyển mạchOpenFlow chuyên dụng và bộ chuyển mạch thương mại có chức năng
OpenFlow[4]
• Chuyển mạch OpenFlow chuyên dụng (Dedicated OpenFlow Switch): loạinày không hỗ trợ việc xử lý gói tin ở lớp 2, 3 Loại này forward gói tin chỉdựa vào flow-table bên trong bộ chuyển mạch Chúng được xây dựng trênnền tảng công nghệ mạch tổ hợp FPGA
• Chuyển mạch thương mại có chức năng OpenFlow (OpenFlow enabledcommercial Switch): loại này chính là một bộ chuyển mạch Ethernet thôngthường nhưng được bổ xung thêm chức năng OpenFlow cho phép xử lý hailoại lưu lượng khác nhau: lưu lượng thí nghiệm (xử lý bởi flow-table) và lưulượng thực tế(xử lý bởi các giao thức lớp 2 và 3)
Do điều kiện nghiên cứu của tác giả là trong phòng thí nghiệm, nên tác giảchỉ tập trung nghiên cứu loại chuyển mạch OpenFlow chuyên dụng Và trong đồ ánnày, khi đề cập đến chuyển mạch OpenFlow là tác giả đang nói đến loại chuyểnmạch OpenFlow chuyên dụng Chương này sẽ trình bày về công nghệ mạch tổ hợpFPGA và ứng dụng mạng OpenFlow trên nền tảng NetFPGA
2.1 Giới thiệu công nghệ mạch tổ hợp FPGA
1.1.1 Các công nghệ mạch tổ hợp
Hiện nay, trên thế giới có rất nhiều các công nghệ thiết kế mạch tổ hợp khácnhau: thiết kế Full-Custom, thiết kế Semi-Custom, PLD (Programmable LogicDevice)
• Thiết kế Full-Custom: Phương pháp thiết kế này chỉ ra Layout của từng
transistor riêng biệt và kết nối giữa chúng Thiết kế Full-Custom sẽ tối ưu
Trang 28hóa được hiệu năng cũng như kích thước của mạch tổ hợp Tuy vậy, giáthành sản xuất của các chip thiết kế theo Full-Custom rất đắt Cách thiết
kế này chỉ áp dụng cho việc sản xuất chip hàng loạt với một số lượng lớn
• Thiết kế Semi-Custom: Cách thiết kế này sử dụng một thư viện các cell
chuẩn có sẵn( các cell này được chế tạo từ các Transistor theo kiểu Custom)
Full-• Programmable Logic Device (PLD): Điển hình là công nghệ
FPGA(Field Programmable Gate Array) Với công nghệ này, người sửdụng có thể hoàn toàn tạo ra một mạch phần cứng tùy ý theo ý muốnkhông phụ thuộc vào dây chuyền sản xuất phức tạp của các nhà máy bándẫn
Công nghệ FPGA nếu đem so sánh với các công nghệ chế tạo chip như Custom hay Semi-Custom thì không đạt được độ tối ưu về mặt tốc độ như nhữngloại này và hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuyvậy FPGA ưu việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạnthiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng
Full-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, các hãng sản xuất FPGA lớnnhư Xilinx, Altera thường cung cấp các gói phần mềm và thiết bị phụ trợ cho quátrình thiết kế, cũng có một số các hãng thứ ba cung cấp các gói phần mềm kiểu nàynhư Synopsys, Synplify Các gói phần mềm này có khả năng thực hiện tất cả cácbước của toàn bộ quy trình thiết kế IC chuẩn với đầu vào là mã thiết kế trên HDL(còn gọi là mã RTL)
1.1.2 Ứng dụng của FPGA
Ứng dụng của FPGA bao gồm: xử lý tín hiệu số DSP, các hệ thống hàngkhông, vũ trụ, quốc phòng, tiền thiết kế mẫu ASIC (ASIC prototyping), các hệthống điều khiển trực quan, phân tích nhận dạng ảnh, nhận dạng tiếng nói, mật mãhọc, mô hình phần cứng máy tính
Trang 29Do tính linh động cao trong quá trình thiết kế cho phép FPGA giải quyết lớpnhững bài toán phức tạp mà trước kia chỉ thực hiện nhờ phần mềm máy tính, ngoài
ra nhờ mật độ cổng logic lớn FPGA được ứng dụng cho những bài toán đòi hỏi khốilượng tính toán lớn và dùng trong các hệ thống làm việc theo thời gian thực
FPGA cũng đượ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 đồ án này là bộ chuyển mạch OpenFlow
1.1.3 Kiến trúc của FPGA
Trong đồ án này, dòng chip FPGA được sử dụng là VirtexTM-II pro Đây làmột dòng chip FPGA hiệu năng cao của hãng Xilinx[5]
Như trên Hình 2.3 thành phần của một chip FPGA của Xilinx bao gồm:
CLB(Configurable Logic Block): khối này bao gồm các tài nguyên để tạo ra
mạch tổ hợp và các thanh ghi
IOB(Input Output Block): khối này đóng vai trò là interface giữa FPGA và
thế giới bên ngoài
Các kết nối có thể lập trình được(Programmable Interconnect)
Các tài nguyên khác như: Memory, Multiplier, Global Clock Buffer…
Hình 2.3 Cấu trúc của FPGA
Trang 302.1.1.1 Cấu tạo của CLB
Mỗi một CLB bao gồm bốn slices Mỗi slice bao gồm các thành phần chính sau:
• Hai bảng Look-up Tables
• Hai phần tử tuần tự (2 flip-flops)
• Khối Carry Logic
Cấu trúc của slice trong FPGA của Xilinx được mô tả trên Hình 2.4 [5] Ởđây, mỗi slice có bốn đầu ra: hai đầu được đệm bởi thanh ghi, hai đầu còn lại thìkhông được đệm bởi thanh ghi
Hình 2.4 Cấu trúc của Slice
Mạch tổ hợp được lưu trữ trong bảng LUT (minh họa trên Hình 2.5) TrongCLB có hai bảng LUT4-1, các bảng LUT4-1 này thực chất là các SRAM với bốnđầu vào là bốn bit địa chỉ, đầu ra là bit giá trị của ô nhớ trong SRAM Bảng LUTnày có thể thực hiện các hàm với độ phức tạp tùy ý, và chỉ bị giới hạn bởi số lượngđầu vào Trễ qua bảng LUT này là không đổi
Trang 31Hình 2.5 Minh họa bảng LUT
Ngoài ra, mỗi Slice bao gồm hai Flip-Flops (minh họa trên Hình 2.6) MỗiCLB có tổng cộng tám Flip-Flops Đầu vào của các Flip-Flops này lấy từ đầu ra củacác bảng LUT hoặc đầu vào của các CLB Dòng chip VirtexTM-II pro tách riêng tínhiệu Set và Reset cho từng Flip-Flop
Hình 2.6 Minh họa các Flip-Flop
Trang 322.1.1.2 IOB
Một chíp FPGA có thể có hơn 1000 chân và được sắp xếp thành các dãyxung quanh chip Các chân vào ra này có thể cấu hình để hoạt động ở các chuẩnkhác nhau: LVTTL, LVDS Mỗi chuẩn sẽ quy định mức điện áp biểu diễn 0 hoặc
1 Việc có thể cấu hình các chuẩn IO giúp việc thiết kế hệ thống trở nên đơn giản Mỗi dãy IO có thể được cấu hình với một chuẩn vào ra riêng Do đó, chípFPGA có thể được sử dụng trong các hệ thống yêu cầu nhiều chuẩn tín hiệu vào rakhác nhau
2.1.1.3 Block RAM
Do có nhiều ứng dụng yêu cầu sử dụng bộ nhớ, do đó chip FPGA đã đượcnhúng rất nhiều khối RAM có kích thước lớn được gọi là Block RAM Tùy theotừng kiến trúc, các khối RAM này có thể được sắp xếp ở vùng biên của chip, sắpxếp rải rác trên bề mặt của chip hoặc trong những vùng khác nhau hoặc được xếpthành từng cột
1.1.3.1 Khối quản lý đồng hồ DCM
Tất cả các thành phần đồng bộ trong chip FPGA đều phải được điều khiển bởicác tín hiệu đồng hồ Các tín hiệu đồng hồ này được đưa từ bên ngoài vào chipFPGA thông qua một chân riêng biệt là chân clock và sau đó được đưa vào các kếtnối để đến các thành phần tương ứng Trong các chip FPGA có một hệ thống cáckết nối riêng để đưa tín hiệu clock nối đến các thành phần tương ứng Kiến trúc nàyđảm bảo các thành phần khác ở các vị trí khác nhau sẽ nhận được tín hiệu có đặctính giống nhau tránh trường hợp bị trượt clock do quá trình truyền tín hiệu với cáckhoảng cách nhau Thông thường một chip FPGA có nhiều chân clock và nhiều hệthống kết nối khác nhau đảm bảo chip FPGA có thể hoạt động ở nhiều tần số khácnhau
Trang 331.1.4 Các bước thiết kế với FPGA của Xilinx
Hình 2.7 dưới đây mô tả các bước thiết kế với FPGA của Xilinx [6]
Hình 2.7 Design flow
Bước 1: Design Entry
Người sử dụng sẽ thiết kế phần cứng trong bước này Có rất nhiều cách màngười sử dụng có thể dùng để thiết kế mạch phần cứng như dùng sơ đồ nguyên lýghép các linh kiện với nhau hoặc dùng một ngôn ngữ mô tả phần cứng như VHDL,Verilog để mô tả mạch Hay một cách khác là sử dụng công cụ Core Generator củaXilinx để sinh ra các khối phần cứng có sẵn Phần mềm được sử dụng ở bước này làISE của Xilinx
Bước 2: Synthesis (Tổng hợp)
Đây là một bước quan trọng trong các bước thiết kế FPGA của hãng Xilinx
Ở bước này người sử dụng sẽ dùng công cụ XST trong gói phần mềm ISE để tổng
Trang 34hợp thiết kế Đầu ra của pha này là các file netlist mô tả mạch phần cứng (bao nhiêugate, flip-flop, kết nối giữa chúng) Các file netlist có đuôi là ngc, ngd.
Trong quá trình tổng hợp, người sử dụng có các lựa chọn cho trình tổng hợpnhằm tạo ra thiết kế mong muốn như tối ưu hóa về tài nguyên trên FPGA hoặc tốcđộ Đây chính là các Synthesis Constraints (ràng buộc tổng hợp)
Sau khi tổng hợp xong thiết kế, người sử dụng cần tiến hành mô phỏng chứcnăng (Functional Simulation) để kiểm tra xem thiết kế có đúng như yêu cầu banđầu
Bước 5: Placing & Routing
Bước này sẽ đặt các thành phần của thiết kế xuống chip đồng thời sẽ kết nốichúng và đưa ra báo cáo về mặt thời gian như độ trễ, tần số xung nhịp lớn nhấtmạch có thể chạy được Ba bước 3, 4, 5 được là Implementation
Trong quá trình Implementation, người sử dụng cần đưa ra các ràng buộc đốivới hệ thống như gán chân cho thiết kế với chân chip thật (Pin Assignment) và tần
số xung nhịp mong muốn (Timing Constraints) Những thông tin ràng buộc nàyđược lưu trong file có dạng ucf
Sau bước này, người sử dụng cần mô phỏng thời gian (Timing Simulation)
để kiểm tra xem thiết kế có đúng hay không về mặt thời gian Khi người sử dụng
mô phỏng thành công ở bước này, thì khả năng chạy được trên chip FPGA thật lảrất cao
Trang 35Bước 6: Bitstream Generation
Khi thực hiện đến bước 5, người sử dụng thấy rằng thiết kế chạy mô phỏngđúng với yêu cầu Người sử dụng sẽ tiến hành tạo ra file bit dùng để nạp xuốngchip FPGA thật Cuối cùng là việc test thử trên chip FPGA thật
1.1.5 Phần mềm ISE
Đây là một phần mềm thiết kế của hãng Xilinx được dùng cho các dòng chipFPGA của hãng Phần mềm này chứa các công cụ cho phép người sử dụng tạo racác design entry (có thể bằng Schematic Editor, viết code Verilog, VHDL hay công
cụ Core Generator) Đồng thời phần mềm này có tất cả các công cụ cần thiết đểthực hiện design flow trên Như công cụ tổng hợp XST, công cụ để thực hiệnTranslating, Mapping, Placing & Routing, công cụ để download thiết kế của người
sử dụng xuống chip FPGA Gói phần mềm này cũng hỗ trợ việc xuất ra các báo cáocần thiết như Timing Report Phần mềm ISE cũng hỗ trợ việc mô phỏng thiết kế củangười sử dụng (công cụ ISim)
Hình 2.8 Giao diện phần mềm ISE
Qua phần này, chúng ta đã hình dung được về chip FPGA và các bước đểlàm việc với FPGA
Trang 362.2 Chuyển mạch OpenFlow trên nền tảng kit NetFPGA
1.1.6 Kiến trúc bộ chuyển mạch OpenFlow
Bộ chuyển mạch OpenFlow bao gồm ba thành phần chính: Flow-table,Secure Channel, giao thức OpenFlow [4], như Hình 2.9 dưới đây:
Hình 2.9 Cấu trúc của một OpenFlow Switch
Chức năng cụ thể của từng thành phần trong chuyển mạch OpenFlow:
• Flow-table: Bảng này bao gồm các flow-entry và mỗi flow-entry có một
Action đi kèm dùng để xử lý các flow Phần này được xây dựng trên nềntảng NetFPGA
• 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 Phần này được xây dựng trên
hệ điều hành Linux
Trang 37• Giao thức OpenFlow: Giao thức cho phép chỉnh sửa flow-table từ một bộ
điều khiển từ xa, và các nhà nghiên cứu tránh được việc phải lập trình cho bộchuyển mạch
Để hiểu thêm về kiến trúc bộ chuyển mạch, chúng ta sẽ đi sâu vào các kháiniệm như flow, flow-entry
Một flow được định nghĩa là các gói tin trùng (matching) với một header cụthể bên trong flow-table Việc so sánh giữa header của gói tin và header của mộtflow-entry để quyết định gói tin thuộc flow nào và Action đi kèm với nó có thể xảy
ra hai trường hợp: một là so sánh trùng một cách chính xác tất cả các trường (matchexactly); hai là chỉ trùng một trường nào đó (wildcard match)
Hình 2.10 Cấu tạo của một flow-entry
Hình 2.10 miêu tả cấu tạo của một flow-entry [4] Mỗi một flow-entry sẽ cómột Action đi kèm với nó Đối với chuyển mạch OpenFlow chuyên dụng, có 3 loại
Trang 38• Hủy bỏ (Drop) các gói tin của luồng này Action này được sử dụng cho mụcđích an ninh mạng nhằm chống lại tình trạng tấn công DoS (Denial ofService) hoặc làm giảm các lưu lượng giả được phát tán trên mạng
Thành phần cuối cùng của một flow-entry là Counters Counters dùng đểtheo dõi số lượng gói tin hoặc byte và thời gian kể từ khi gói cuối cùng trùng vớimột flow-entry trong flow-table (dùng để xóa đi những luồng không còn hoạtđộng)
Hình 2.11 Các bước khi một flow mới tới bộ chuyển mạch OpenFlow
Hình 2.11 là các bước để định tuyến một flow từ một máy tính nguồn sangmột máy tính đích thông qua hai bộ chuyển mạch OpenFlow [4] Trong sơ đồ bêntrái, flow-table của hai bộ chuyển mạch đều không chứa gì Khi một gói tin đếntrong bước 1, nó được forward tới bộ điều khiển trong bước 2 Bộ điều khiển kiểmtra gói tin đến và thêm một flow-entry (flow A) vào trong flow-table của các bộchuyển mạch trong bước 3 Sau đó gói tin được gửi tới máy tính đích trong bước 4
và 5 Trong các bước 6, 7, 8 bất kì gói tin mới nào thuộc về cùng một flow (flow Acủa gói tin thứ 1) sẽ được định tuyến trực tiếp tới máy tính đích
1.1.7 Giới thiệu về NetFPGA
NetFPGA là một nền tảng phần cứng giá rẻ, được thiết kế chủ yếu nhằm mụcđích là làm công cụ cho việc giảng dạy và nghiên cứu các thiết kế phần cứng mạng
Trang 39như bộ định tuyến, bộ chuyển mạch, card mạng NetFPGA đang được phổ biếnmột cách rộng rãi tới các sinh viên, giảng viên và các nhà nghiên cứu và nhữngngười quan tâm tới việc thử nghiệm các ý tưởng mới liên quan đến phần cứng mạngtốc độ cao.
Trong đồ án này, bộ chuyển mạch OpenFlow được xây dựng trên nền tảngNetFPGA (Hình 2.12)
Hình 2.12 Nền tảng NetFPGA
Nền tảng NetFPGA bao gồm ba thành phần chính: phần cứng, phần mềm, gateware.
2.2.1.1 Phần cứng
Phần cứng (kit NetFPGA) là một chiếc PCI Card bao gồm các thành phần
chính sau:
- Xilinx VirtexTM-II pro 50
- 4x1 Gbps Ethernet ports sử dụng lõi MAC mềm
Trang 40- 4.5 Mb SRAM và 64 Mb DDR2
- Một chip FPGA Spartan II dùng để làm khối Control Logic cho PCIinterface
- Kit NetFPGA giao tiếp với máy tính thông qua đường bus PCI
Sơ đồ khối chi tiết các thành phần phần cứng cũng như cách sắp xếp củachúng trong kit NetFPGA được minh họa trên Hình 2.13[4]
Hình 2.13 Sơ đồ khối chi tiết các thành phần trong kit NetFPGA
2.2.1.2 Gateware
Gateware là mã nguồn Verilog để tạo ra khối phần cứng trên chip FPGAVirtexTM-II pro Các thiết kế trên nền tảng NetFPGA được thiết kế theo từng mứcvới chức năng nhiệm vụ khác nhau như trên Hình 2.14 Trong đó:
- nf2_top là mức cao nhất: Chứa các tín hiệu (signal) đầu vào, đầu ra nối
các thiết bị ngoại vi bên ngoài như thạch anh, cổng mạng, …
- nf2_core chứa các thành phần quan trọng cần có với mọi dự án làm việc
với NetFPGA như các hàng đợi, bộ điều khiển thanh ghi cpci, …