KHÁI NIỆM VỀ MẠNG FABRIC
(Biên soạn và trình bày Đặng Quang Minh – 2/2020)
Trong các kiến trúc thiết kế mạng mới như SDN, SDWAN, SDAccess, chúng ta thường nghe nói đến thuật ngữ “network fabric”. Với yêu cầu từ mức ứng dụng, hạ tầng mạng thế hệ mới cho phép các ứng dụng chạy trực tiếp trên nó, chúng ta có thể xem hạ tầng mạng như một thực thể duy nhất. Để giải quyết vấn đề này, những người kỹ sư mạng đã quay về với các khái niệm cũ để tìm ra các cách tốt nhất xây dựng các mạng chuyển mạch (circuit switch), kết hợp với các nguyên tắc của chuyển mạch gói (packet switch) để tạo ra thành để tạo ra thành một mạng trục, mạng xương sống. Bài viết này sẽ trình bày về ba thuộc tính quan trọng nhất của mạng trục fabric. Nắm vững các khái niệm này sẽ giúp các bạn hiểu được các khái niệm như spine-and-leaf, scale out, scale up….
Các thuộc tính đặc biệt của một mạng fabric
Thuật ngữ fabric được sử dụng trong ngữ cảnh mạng như thế nào? Để bắt đầu, chúng ta hãy cùng xem lại một số cách dùng mang tính chất tiếp thị (marketing) của các hãng công nghệ đối với khái niệm này.
Ví dụ 1: Fabric là một sơ đồ mạng ảo luận lý chạy trên một mạng vật lý.
Ví dụ 2: Fabric là bất kỳ một mạng có hiệu năng cao, trong đó hiệu năng cao có ý nghĩa là băng thông lớn.
Ví dụ 3: Fabric là một mạng có hỗ trợ cơ chế cân bằng tải cho chi phí bằng nhau (ECMP)
Ví dụ 4: Fabric là một cách thức chúng ta nhìn toàn bộ hạ tầng mạng như một thực thể duy nhất (thing), chứ không phải là tập hợp của các thành phần riêng lẻ (ví dụ, router, switch….)
Với việc sử dụng thuật ngữ fabric mang tính chất marketing một cách nặng nề, các kỹ sư mạng chúng ta đã trở nên dần quen thuộc và bị tạo một cảm giác là đây là một cấu trúc mạng đặc biệt với nhiều tính năng đáng mong ước. Thật ra thì ví dụ 4 nêu trên là một cách sử dụng rất thông minh và rất hữu ích – xem mạng như một thực thể duy nhất. Nó cũng dẫn đến một suy nghĩ là chúng ta không thể xây dựng một mạng fabric từ những thành phần riêng lẻ. Thay vào đó, theo cách định nghĩa ở ví dụ 4, chúng ta phải mua cả gói giải pháp từ nhà cung cấp như một “gói giải pháp” (!???)
Bỏ qua các thảo luận về cách dùng mang tính chất tiếp thị của khái niệm fabric, chúng ta sẽ khảo sát ba đặc điểm của một mạng fabric.
Đầu tiên, sơ đồ mạng mang tính nhất quán nghĩa là cấu trúc của nó được thiết kế tốt và có tính lặp lại. Để nói một sơ đồ có tính lặp lại, trong sơ đồ sẽ có những thành phần tương tự nhau để đáp ứng khả năng mở rộng.
Trong hình vẽ trên, các sơ đồ gồm các node ABC, sơ đồ phía trên bên phải DEF là các sơ đồ có tính lặp. Khi ta thay thế A1 vào vị trí B2 và ngược lại, sơ đồ mạng không đổi. Hai sơ đồ bên dưới GHK và LMN là các sơ đồ không có tính lặp. Vì sao đây là một điểm quan trọng để quyết định xem một mạng có được xem là fabric hay không? Đầu tiên, các mạng fabric được thiết kế để các thành phần phần cứng, phần mềm và các cấu hình đều là có thể thay thế dễ dàng. Bạn có thể nghĩ về đặc điểm này như là cách thức chúng ta chia nhỏ các chức năng, chúng ta mô-đun hóa các chứng năng. Với việc mô đun hóa này, chúng ta dễ dàng thay thế các thành phần nhỏ, giúp dễ dàng quản lý và cấu hình.
Thứ hai, khi thiết kế khả năng mở rộng của mạng fabric, thiết kế vật lý bên dưới được tách biệt ra khỏi tầng luận lý, tầng ảo. Phần tách biệt này càng rõ ràng càng tốt. Khả năng mở rộng của một sơ đồ mạng là một chỉ dấu cho kiến trúc mạng fabric. Đặc biệt là các mạng fabric thường có xu hướng mở rộng theo hướng scale-out, chứ không scale-up.
Trong hình vẽ trên, mạng bên trên được cấu hình như là mạng fabric trong khi phần mạng bên dưới cấu hình theo kiểu có thứ bậc. Câu hỏi đặt ra là làm thế nào chúng ta tăng thêm băng thông để kết nối đến một rack thiết bị mới. Với kiến trúc mạng theo thứ bậc như ở phần bên dưới, chúng ta có thể thêm vào thiết bị ở lớp truy cập (access). Tuy nhiên, khi chúng ta thêm vào router hoặc thêm vào thiết bị cũng đồng nghĩa chúng ta cần thêm băng thông, thêm kết nối ở lớp core và lớp distribution. Thông thường, điều này cũng có nghĩa là chúng ta cũng sẽ thêm các kết nối dự phòng mới hoặc chạy thêm các cơ chế cân bằng tải ECMP. Trong cả hai tình huống, chúng ta đều cần thêm port vật lý, thêm các kết nối tốc độ cao.
Trong mạng fabric bên trên, khi chúng ta thêm vào một rack thiết bị mới, chúng ta chỉ cần thêm 3 router mới và thêm các kết nối đến các thiết bị này. Tuy nhiên, tổng băng thông hiệu dụng sẽ tăng khi các điểm kết nối mới được thêm vào. Vì vậy, mạng sẽ được mở rộng bằng cách thêm vào các thiết bị cùng loại, chứ không cần thay đổi các thiết bị hiện có.
Sự khác nhau giữa việc thêm vào các thiết bị/các module hay việc thay thế và nâng cấp các thiết bị hiện có chính là sự khác nhau giữa scale-up và scale-out. Nguyên tắc cần nhớ là fabric thì scale-out, chứ không scale-up. Mạng kiến trúc kiểu cũ (hierarchical design) thì scale-up, không scale-out.
Thứ ba, hiệu năng của mạng fabric là yếu tố quan trọng. Chúng ta thường đặt các mục tiêu về hiệu năng của mạng xung quanh các khái niệm về QoS và thời gian hoạt động của mạng Mạng fabric cũng có các mục tiêu tương tự, tuy nhiên có vài điểm khác biệt. Ví dụ