Mở rộng bản tin OpenFlow điều khiển giảm tần

Một phần của tài liệu Nghiên cứu giải pháp tiết kiệm năng lượng trong thiết kế chuyển mạch sử dụng ở trung tâm dữ liệu (Trang 44)

4. Cấu trúc nội dung của luận án

2.3.3. Mở rộng bản tin OpenFlow điều khiển giảm tần

Bản tin điều khiển OpenFlow được gửi giữa bộ điều khiển (NOX Controller) và chuyển mạch OpenFlow để quản lý, kiểm soát hoạt động thông qua giao thức OpenFlow. Mỗi bản tin OpenFlow bắt đầu với tiêu đề [44]:

struct ofp_header { uint_8 version; uint_8 type; uint_16 length; uint_32 xid; };

31

Để giảm công suất tiêu thụ của chuyển mạch tác giả mở rộng các bản tin giao thức OpenFlow để điều khiển tần số hoạt động của chuyển mạch. Bản tin mở rộng OpenFlow được định nghĩa như sau:

• Bản tin OFPT_SWITCH_MOD:

Chiều bản tin: Bộ điều khiển xuống Chuyển mạch Độ dài: 32 Bytes

Chức năng: Thay đổi chế độ làm việc của chuyển mạch Cấu trúc:

struct ofp_switch_mod {

struct ofp_header header; uint8_t switch_mode;

uint8_t pad[3]; };

Bảng 2.1. Bản tin OFPT_SWITCH_MOD giảm tần

Opflow

header Datapath ID Switch state Option Pad

8bytes 8 bytes 1bytes 4bytes 3bytes

F - - - - M2 M1 M0

7 0

Reserved Mode

Flag

Hình 2.6. Trường Switch state

Chuyển mạch có thể đổi trạng thái khi nếu bit cờ „Flag‟ có giá trị „1‟. Trường Mode chỉ ra tần số làm việc của chuyển mạch. Bảng 2.2 mô tả các mức tần số khác nhau mã hóa bởi 3 bit {M2, M1, M0} trong trường Switch state của bản tin OFPT_SWITCH_MOD. Chuyển mạch chạy ở mức tần số bình thường là 125MHz tương ứng M2M1M0 = “000”. Có thể đưa tần số của chuyển mạch về 3.90625 MHz. Trong thực nghiệm, nếu tần số giảm xuống hơn nữa chuyển mạch sẽ bị treo và không thể khôi phục hoạt động trở lại.

Bảng 2.2. Các mức tần số khác nhau Chế độ (Mode) M2 M1 M0 Tần số hoạt động của chuyển mạch (MHz) Số lần giảm 0 0 0 0 125 1 1 0 0 1 62.5 1/2 2 0 1 0 31.25 1/4

32

3 0 1 1 15.625 1/8

4 1 0 0 7.8125 1/16

5 1 0 1 3.90625 1/32

6 1 1 0 Not available(N/A) N/A

7 1 1 1 N/A N/A

Sơ đồ thuật toán trong Hình 2.7 dưới đây minh họa quá trình tiếp nhận và xử lý bản tin điều khiển chuyển mạch OpenFlow. Trong thực tế, chuyển mạch OpenFlow có thể không đáp ứng với bộ điều khiển NOX /POX nếu nó chạy ở tần số thấp hơn so với 3.90625MHz.

Bắt đầu

Bắt tay với NOX

Nhận bản tin

điều khiển Cờ Flag = 1?

Y Y OK? Kết thúc Y N Mode < 6? 𝐹 = 125 2𝑚𝑜𝑑𝑒 MHz N N

Hình 2.7. Lưu đồ thuật toán điều khiển thay đổi tần số

2.4. Giải pháp điều khiển trạng thái các cổng Ethernet

Đặc tính năng lượng của Kit NetFPGA ở Mục 2.2.2.5 đưa ra năng lượng tiêu thụ của các cổng Ethernet lớn nhất chiếm khoảng 37.7% khi được thiết lập ở chế độ 1Gbps. Tuy nhiên, chúng có thể được cấu hình để chạy với các mức băng thông nhỏ hơn, chẳng hạn 100Mbps, 10Mbps hay thậm chí là tắt đi ở trạng thái idle. Dựa vào điều này tác giả đề xuất giải pháp tiết kiệm năng lượng cho chuyển mạch OpenFlow bằng cách xây dựng phần mềm điều khiển và mở rộng bản tin OpenFlow để thay đổi tốc độ liên kết của các cổng Ethernet nhằm tiết kiệm năng lượng cho chuyển mạch.

2.4.1. Nguyên lý thay đổi tốc độ liên kết (link_rate)

Trong năm 2010, chuẩn IEEE 802.3 az [26] có chế độ năng lượng nghỉ thấp được đánh giá cao về hiệu quả năng lượng. Chế độ làm việc này giúp cổng Ethernet giảm được

33

năng lượng tiêu thụ của đường dẫn khi không có lưu lượng dữ liệu. Paillassa và các cộng sự [46] chỉ ra một số thuận lợi khi phân tích gần chính xác mô hình năng lượng dựa trên chuyển mạch hỗ trợ EEE. Một vài nhà sản xuất đang sản xuất một số sản phẩm hỗ trợ chuẩn EEE. Tuy nhiên, trên Kit NetFPGA có chip Ethernet từ Broadcom không đáp ứng chuẩn IEEE 802.3az. BCM5464SR Network IC chỉ hỗ trợ chuẩn IEEE 802.3u và chuẩn IEEE 802.3ab [25]. Trong phần này, tác giả đề xuất một giải pháp mới điều khiển tất cả các cổng trên Kit NetFPGA. Giống như chuẩn 802.3az, năng lượng tiêu thụ được giảm khi lưu lượng tải trên đường truyền thấp hoặc đạt tới chế độ nghỉ.

Trong nghiên cứu [18], dòng gói tin trên cổng Ethernet được điều khiển bởi việc thay đổi tần số xung nhịp của mô đun TEMAC được đặt ở khối MAC RC-TX của chip FPGA. Tuy nhiên, phương pháp này không tiết kiệm được nhiều năng lượng như mong đợi bởi vì chip vật lý Ethernet vẫn chạy trong khi tần số đã được cắt giảm. Trong phần này, tác giả giới thiệu một phương pháp khác để thay đổi trạng thái mỗi cổng Ethernet chạy ở một số mức băng thông khác nhau. Dựa vào MDIO (Management Data Input/Output) là một đường bus nối tiếp được định nghĩa trong chuẩn IEEE 802.3 [25] cho MII (Media Independent Interface). MII kết nối với thiết bị MAC (Media Access Control) với Ethernet ở tầng vật lý. Theo bản vẽ mạch nguyên lý, trên Kit NetFPGA-1G, chip BCM5464SR NIC có hỗ trợ MDIO với thanh ghi MII [60] có chức năng từng bit như Bảng 2.3.

Bảng 2.3. Chức năng từng bit của thanh ghi điều khiển MII

Bit Tên Mô tả

Bit 15 Reset ( Thiết lặp lại) 1 = PHY Thiết lặp lại

0 = Hoạt động bình thường

Bit 14 Reserved (Dự phòng) Giá trị luôn 0, ghi bỏ qua

Bit 13 Speed Selection (LSB)

(Lựa chọn tốc độ link) Bit 6 ,13 1 1 = Dự phòng 1 0 = 1000 Mb/s 0 1 = 100 Mb/s 0 0 = 10 Mb/s

Bit 12 Auto-negotiation (Tự động thương lượng)

Enable

1 = Auto-negotiation hoạt động 0 = Auto-negotiation không hoạt động

Bit 11 Low Power (Chế độ công suất thấp) 1 = chế độ Low-power

0 = Hoạt động bình thường

Bit 10 Isolate (Cô lập tín hiệu) 1 = Cô lập PHY tới MII

0 = Hoạt động bình thường

34

chế độ tự động thương lượng) 0 = Auto-negotiation restart complete

Bit 8 Duplex Mode (Chế độ Duplex) 1 = Full-duplex (chạy toàn phần)

0 = Half-duplex (chạy một nửa)

Bit 7 Reserved (Dự phòng) Giá trị luôn 0, ghi bỏ qua

Bit 6 Speed Selection (MSB)( Lựa chọn tốc độ) See bit 13 ( kết hợp với bit 13)

Bit 5:0 Reserved (Dự phòng) Giá trị luôn 0, ghi bỏ qua

Trong BCM5464SR NIC có 4 thanh ghi MII để điều khiển 4 cổng Ethernet riêng biệt. Mỗi thanh ghi MII có địa chỉ riêng. Để đọc hoặc ghi trên thanh ghi MII, TEMAC có thể giao tiếp với thanh ghi MII sử dụng giao thức MDIO với địa chỉ thanh ghi tương ứng. Do vậy, bằng cách thay đổi driver OpenFlow, chuyển mạch có thể nhận được bản tin điều khiển OpenFlow từ bộ điều khiển (NOX hay POX) và thiết lập giá trị của thanh ghi MII để thay đổi chế độ hoạt động. Cấu trúc của tin nhắn MDIO gồm 7 phần chính với độ dài 32 bit được mô tả ở Hình 2.8. Hai bít đầu tiên của bản tin được cố định sẵn là “01”, tiếp đến là 2 bit chế độ hoạt động (“01” cho chế độ ghi, “10” cho chế độ đọc). Hai trường quan trọng tiếp theo là địa chỉ vật lý và địa chỉ thanh ghi, nơi chứa chính xác địa chỉ của thanh ghi MII. Cả hai trường đều rộng 5 bit, được đánh địa chỉ bởi trình biên dịch. Lưu ý rằng do chỉ có một chip vật lý Ethernet trên Kit NetFPGA-1G, địa chỉ vật lý chỉ có một giá trị cho tất cả tin nhắn MDIO được gửi trên Kit.

- - 27 - - - 31 30 29 28 0 1 - - Hoạt động 2 bit đầu 22 - -

Địa chỉ thanh ghi [4:0]

- - -

17 16 15 0

- - - - -

TA Bit điều khiển dữ liệu [15:0] -

Địa chỉ vật lý[4:0]

Hình 2.8. Cấu trúc bản tin MDIO

Địa chỉ thanh ghi của 4 cổng Ethernet bắt đầu ở 0x440000 và tăng thêm 0x000080 cho mỗi cổng. Trường 16 bit cuối trên bản tin MDIO chứa bit dữ liệu cái mà có thể ghi trực tiếp vào thanh ghi trong chế độ ghi. Để điều khiển băng tần cho mỗi cổng với thanh ghi MII, đầu tiên chế độ tự động thương lượng (auto-negotiation) sẽ được vô hiệu hóa bằng cách thiết lập bit thứ 12 thành „0‟. Sau đó sự kết hợp bit 6 và bit 13 có thể được sử dụng để chọn 3 trạng thái băng thông khác: a) “00” cho 10 Mbps; b) “01” cho 100 Mbps; c) “10” cho 1 Gbps và “11” không sử dụng. Hình 2.9 mô tả các trường của thanh ghi MII.

Lựa chọn tốc độ R - SP0 AN LP - - 6 0 - SP1 - - - 15 13 Chế độ công suất thấp Tự động thương lượng - 5 - - -

35

2.4.2. Mở rộng bản tin OpenFlow điều khiển cổng Ethernet

Để thay đổi tốc độ liên kết các cổng Ethernet cho chuyển mạch nhằm tiết kiệm năng, tác giả mở rộng bản tin điều khiển OpenFlow [44] được định nghĩa như sau:

Bản tin OFPT_PORT_MOD:

Chiều bản tin: Bộ điều khiển xuống chuyển mạch Độ dài: 32 Bytes

Chức năng: Cấu hình trạng thái cổng mạng Cấu trúc :

struct ofp_port_mod {

struct ofp_header header; uint16_t port_no; uint8_t hw_addr[OFP_ETH_ALEN]; uint32_t config; uint32_t mask; uint8_t link_state; uint32_t advertise; uint8_t pad[3]; };

Trường link_state chứa thông tin điều khiển cổng như trên Hình 2.10. Giá trị „1‟ tại ô cờ (Flag) sẽ quyết định có hay không đổi trạng thái của chuyển mạch. Cặp bit {P1, P0} xác định số hiệu cổng, cặp bit {B1, B0} xác định băng thông trên cổng đã chọn: “11” tức là 1Gbps, “10” nghĩa là 100Mbps, “01” sẽ giới hạn băng thông về 10Mbps, và “00” biểu thị cho việc tắt cổng đó.

Bảng 2.4. Bản tin OFPT_PORT_MOD

OpenFlow

header Port no

MAC

address Config Mask

Link

state Advertise Pad

8bytes 2bytes 6bytes 4bytes 4bytes 1bytes 4bytes 3bytes

F - - - B1 B0 P1 P0

7 0

Link Rate Port No.

Flag Reserved

Hình 2.10. Trường Link state mô tả tốc độ liên kết của cổng Ethernet

Thuật toán thể hiện trên sơ đồ trong Hình 2.11 dưới đây minh họa quá trình tiếp nhận và xử lý bản tin điều khiển trên chuyển mạch OpenFlow. Sau khi hoàn thành giao thức “bắt tay” với bộ điều khiển (NOX), chuyển mạch sẽ chạy trong chế độ lắng nghe theo dõi

36

tất cả các bản tin điều khiển và chỉ dẫn lệnh gửi đến nó. Ngay sau khi nhận được bản tin về chế độ hoạt động mới của các cổng, chuyển mạch sẽ giới hạn băng thông trên mỗi cổng và thiết lập các giá trị tương ứng nhất định. Cần chú ý là trước khi chuyển sang chế độ ngủ (tắt link) trên mỗi cổng phải chắc chắn rằng không có gói tin nào còn lại trong hàng đợi. Do vậy, một số khối theo dõi hàng đợi được sử dụng để kiểm tra hàng đợi rỗng hay không.

Bắt đầu Bắt ta với NOX Nhận bản tin 1Gbps? Tha đổi: Link_ rate 1Gbps Link rate 1Gbps? Y N Y 100Mbps Tha đổi: Link_ rate 100Mbps Link rate 100Mbps? Y Y N 10Mbps? Tha đổi: Link_ rate 10Mbps Link rate 10Mbps? Y Y N N N N OK? Kết thúc Y N Hàng đợi trống? Tắt Link? Tắt Link N Y Y

Hình 2.11. Lưu đồ thuật toán điều khiển thay đổi tốc độ Link-rate

2.5. Giải pháp thiết kế chuyển mạch OpenFlow tiết kiệm năng lƣợng dƣới sự điều khiển của NOX /POX

Sau khi đã đề xuất các giải pháp tiết kiệm năng lượng cho chuyển mạch NetFPGA đã trình bày trong Mục 2.3 và Mục 2.4 như thay đổi tần số hoạt động, bật /tắt hoặc thay đổi tốc độ link-rate của cổng chuyển mạch, tác giả thực tiến hành thiết kế tổng thể một kiến trúc chuyển mạch OpenFlow trên nền NetFPGA với tất cả các chức năng nói trên. Chuyển mạch còn có thể liên hệ với bộ điều khiển NOX /POX thông qua giao thức OpenFlow mở rộng để nhận các bản tin điều khiển thay đổi trạng thái hoạt động của chuyển mạch dựa trên tình trạng lưu lượng của mạng.

2.5.1. Thiết kế phần cứng chuyển mạch

Dựa trên giải pháp giảm tần được đưa ra, khối điều khiển tần số có tên là CC (Clock Controller được xây dựng thêm như một khối chức năng của chuyển mạch. Chức

37

năng của khối CC lấy thông tin từ phần mềm thông qua PCI bus để điều khiển việc chia tần số hoạt động của chuyển mạch. Phần này mô tả thiết kế của khối CC có chức năng nhận một bản tin điều khiển từ trung tâm điều khiển và thực hiện mệnh lệnh được đưa ra trong bản tin đó. Để thực hiện được điều này, cần phải biết được chiều đến và đi của các bản tin điều khiển được gửi xuống từ NOX /POX, và cần biết các bản tin này được xử lý ra sao bên trong khối xử lý trung tâm của chuyển mạch.

Các thông tin đưa vào khối User Data Path có hai loại và đi theo hai đường khác nhau:

 Bản tin điều khiển từ NOX /POX: được cập nhật vào thanh ghi Register Master,

sau đó tại mỗi nhịp đồng hồ, giá trị của thanh ghi này được dịch đi sang các thanh ghi sau nó theo mô hình pipeline. Bản tin điều khiển khi đi qua các khối nhỏ sẽ được đọc /ghi tùy theo chức năng mỗi khối và được quay vòng trở về Register Master để chuyển tiếp về NOX /POX giúp NOX /POX phân tích được các phản hồi của hệ thống.

 Các gói dữ liệu đi đến từ các cổng Ethernet: chúng được vận chuyển qua một đường riêng trên một chuỗi các hàng đợi thuộc các khối khác nhau trong User Data Path. Các gói dữ liệu sau khi được xử lý sẽ được chuyển tiếp đến các cổng Ethernet khác.

Hình 2.12. Vị trí của khối Clock Controller trong khối User Data Path

Như Hình 2.12 các bản tin điều khiển được gửi từ NOX /POX đến chuyển mạch sẽ được truyền đi trên Register Bus qua các khối xử lý gói tin khác nhau. Như vậy, ta hoàn toàn có thể thêm một khối điều khiển tự định nghĩa để có thể bắt được gói tin này và xử lý lệnh điều khiển phù hợp.

Khối CC bao gồm các tín hiệu đầu vào và đầu ra như sau (Hình 2.13):

 Master Clock: tín hiệu clock chủ từ NF2_CORE, cấp clock cho toàn khối hoạt động.

38

 Register Bus In: đầu vào register bus để nhận bản tin điều khiển.

 Register Bus Out: là đầu ra chuyển tiếp dữ liệu từ đầu vào register bus, đầu ra này có nhiệm vụ khép kín vòng dịch chuyển dữ liệu đã mô tả trên Hình 2.12.

 Control Signals Out: là đầu ra tín hiệu điều khiển, các tín hiệu này sẽ điều khiển

khối chia tần. Clock Controller (CC) Register bus in Master clock

Register bus out Control signals out

Hình 2.13. Mô tả tín hiệu vào và ra ở khối CC

Khối CC có một thanh ghi bên trong nhằm giữ lại lệnh điều khiển tại mỗi chu kỳ. Dựa và thanh ghi này, khối CC sẽ đưa ra các tín hiệu điều khiển chia tần thích hợp.

2.5.2. Thiết kế phần mềm chuyển mạch

Việc nhận và xử lý gói tin điều khiển hoàn toàn phụ thuộc vào cổng Ethernet và phần mềm trên máy tính chứa NetFPGA như mô tả trên Hình 2.15. Do vậy, việc thiết kế phần mềm điều khiển bao gồm các công việc sau:

 Xây dựng phần mềm điều khiển tốc độ link_rate cho cổng Ethernet

 Mở rộng bản tin điều khiển OpenFlow cho chuyển mạch

2.5.2.1. Truyền, nhận và xử lý bản tin từ bộ điều khiển

Các gói tin điều khiển từ bộ điều khiển NOX /POX sẽ được gửi xuống cổng Ethernet

(cổng eth0) của máy tính chứa kit NetFPGA như Hình 2.14.

39

Các cổng trên NetFPGA được dùng để gửi, nhận, chuyển tiếp,… các gói tin trong mạng OpenFlow theo các bảng ghi flow và các hành động được định nghĩa trong bảng flow chứ không giao tiếp với bộ điều khiển. Việc nhận và xử lý gói tin điều khiển hoàn toàn phụ thuộc vào cổng Ethernet và phần mềm trên máy tính chứa NetFPGA.

Hình 2.15. Sơ đồ hệ thống bộ điều khiển và bộ chuyển mạch OpenFlow [38]

Các khối chức năng trong việc gửi, nhận và xử lý gói tin, điều khiển phần cứng NetFPGA được mô tả trên Hình 2.15. Gói tin từ bộ điều khiển gửi xuống sẽ được xử lý trong phần OpenFlow software. Sau đó, OpenFlow software sẽ thực hiện việc bóc tách bản tin và gửi lệnh xuống NetFPGA thông qua khối DRIVER.

2.5.2.2. Xây dựng phần mềm điều khiển

Phần này sẽ xây dựng phần mềm điều khiển tốc độ các cổng Ethernet của chuyển mạch Openlow dựa vào lưu lượng đầu vào nhằm tiết kiệm năng lượng. Đầu tiên mô hình điều khiển phần mềm được mô tả như Hình 2.16 được đề xuất, sau đó là cách thức để điều khiển cổng Ethernet chạy ở các mức băng thông khác nhau. Những kết quả này là một giải pháp hữu hiệu trong nghiên cứu tiết kiệm năng lượng trên các chuyển mạch.

ETHERNET FPGA MII Control Register

Một phần của tài liệu Nghiên cứu giải pháp tiết kiệm năng lượng trong thiết kế chuyển mạch sử dụng ở trung tâm dữ liệu (Trang 44)

Tải bản đầy đủ (PDF)

(116 trang)