Đám mây công cộng

500
Tích hợp giải pháp OpenStack với giải pháp mạng định nghĩa bằng phần mềm – Application Centric Infrastructure (gọi tắt là ACI) của Cisco để triển khai Điện toán đám mây và sử dụng Fabric Extender (FEX) để mở rộng hệ thống nhằm tiết kiệm chi phí nhưng vẫn đảm bảo hiệu suất của hệ thống.
1. Giới thiệu
Tích hợp giải pháp OpenStack với giải pháp mạng định nghĩa bằng phần mềm – Application Centric Infrastructure (gọi tắt là ACI) của Cisco để triển khai Điện toán đám mây và sử dụng Fabric Extender (FEX) để mở rộng hệ thống nhằm tiết kiệm chi phí nhưng vẫn đảm bảo hiệu suất của hệ thống.
2. Giới thiệu openstack
OpenStack là một nền tảng phần mềm mã nguồn mở và miễn phí cho Điện toán đám mây (cũng được gọi là hệ điều hành đám mấy), chủ yếu được sử dụng triển khai theo mô hình IaaS. Nền tảng này bao gồm các mô-đun với các tên mã riêng biệt (Nova, Swift, Cinder, Neutron,…) liên quan với nhau để điều khiển các tài nguyên tính toán, tài nguyên lưu trữ, tài nguyên mạng được dùng chung trong một trung tâm dữ liệu. Người sử dụng có thể quản lý các tài nguyên này thông qua giao diện web, các dòng lệnh hay thông qua RESTful API. Và được xây dựng trên nền tảng ngôn ngữ lập trình Python.
  • Dashboard (“Horizon”) cung cấp giao diện web cho các dịch vụ của OpenStack
  • Compute (“Nova”) lưu trữ và lấy các đĩa ảo (“images”) và các dữ liệu mô tả đối tượng trongImage (“Glance”)
  • Network (“Neutron”) cung cấp mạng ảo cho Compute.
  • Block Storage (“Cinder”) cung cấp các khối lưu trữ cho Compute.
  • Image (“Glance”) lưu trữ các tệp đĩa ảo trong Object Store(“Swift”)
  • Tất cả các dịch vụ đều được chứng thực với Identity (“Keystone”)
Dự án được phát hành dựa vào các điều khoản của giấy phép Apache và được quản lý bởi tổ chức OpenStack, một tổ chức phi lợi nhuân được thành lập vào tháng 09 năm 2012
OpenStack được xây dựng bằng ngôn ngữ Python và được dùng để triển khai Điện toán Đám mây, bao gồm Đám mây Riêng tư và Đám mây Công cộng
OpenStack được hỗ trợ bởi cộng đồng kĩ sư công nghệ, lập trình viên, nhà nghiên cứu, các công ty và các chuyên gia điện toán đám mây trên khắp thế giới
Hơn 200 công ty đã tham gia vào dự án như AMD, Brocade Communications Systems, Canonical, Cisco, Dell, EMC, Ericsson, Groupe Bull, HP, IBM, Inktank, Intel, NEC, Rackspace Hosting, Red Hat, SUSE Linux, VMware, and Yahoo!
3. Giới thiệu ACI
Cisco ACI là một kiến trúc trung tâm dữ liệu mới được thiết kế để giải quyết các yêu cầu của các mạng truyền thống hiện nay, cũng như để đáp ứng nhu cầu phát sinh mà các xu hướng điện toán mới và các yếu tố kinh doanh được triển khai trên mạng.
Với ACI, Cisco đã đưa ra mô hình mới được gọi là chính sách dựa trên nhóm (GPB) và là dự án đang phát triển trong OpenStack và OpenDaylight.
Với sự giúp đỡ của chính sách mới, khách hàng cuối dễ dàng mô tả ý định kết nối của họ mà không cần bất kì kiến thức quan trọng nào về mạng. Ngoài ra việc thay đổi trong chính sách vào bất kì lúc nào cũng không ảnh hưởng đến việc xử lý chuyển tiếp của mạng. Cisco gọi đó là “Trừu tượng & Tách riêng”
Trong mô hình ứng dụng trung tâm mới, kết nối được định nghĩa bằng cách hợp nhất các điểm cuối (vật lý hay ảo) vào các nhóm thiết bị đầu cuối (EPGs). Kết nối của người dùng cuối được định nghĩa khi họ chỉ rõ hợp đồng quan hệ giữa một EPG và một EPG khác. Người dùng cuối không cần phải hiểu các giao thức hoặc tính năng được sử dụng để tạo ra các kết nối này.
Vậy làm thế nào để bảo trì các chính sách ở mức độ hạ tầng trung tâm dữ liệu mà không có bất kì mâu thuẫn nào? Câu trả lời là APIC. Cisco APIC là hệ thống phân tán thực hiện như một cụm điều khiển. Nó cung cấp một điểm điều khiển, API, kho trung tâm dữ liệu toàn cục, và một kho cho các dữ liệu định nghĩa dựa trên chính sách cho Cisco ACI.
Nexus 9000 + APIC = ACI
ACI Fabric
Khối lượng công việc tiếp tục phát triển, và lưu lượng thông tin trở nên nhiều hơn theo chiều từ Đông sang Tây. Mạng cần đáp ứng nhanh hơn đến khối lượng công việc được ảo hóa động và dựa trên điện toán đám mây. Kiến trúc 02 tầng Spine – Leaf đáp ứng tất cả những yêu cầu này được mong chờ từ trung tâm dữ liệu thế hệ tiếp theo.
Một switch leaf được kết nối đến tất cả switch spine, không có kết nối giữa các switch leaf hoặc giữa các switch spine. Tất cả server, dịch vụ và kết nối bên ngoài đều thông qua switch leaf, không có bất cứ thứ gì được kết nối trực tếp đến switch spine.
4. Tích hợp Fabric Extender vào ACI
Với mô hình ACI 2 Spice N9K-C9508 – 2 Leaf N9K-C9396PX 48 Port 10Gbps – Fex N2K-C2232TM-E-10GE 32 Port 10Gbps, thiết bị Fex sẽ kết nối với Leaf thông qua 4 port 10Gb , nghĩa là một thiết bị Leaf có thể kết nối được với 12 thiết bị FEX. Nếu mỗi server có 2 port mạng thì ta có thể sử dụng 16 server trên mỗi FEX. Như vậy, với mô hình 2 Spine – 2 Leaf – FEX, thì ACI có thể hỗ trợ lên đến 192 server với tổng các thiết bị là 2 Leaf và 12 FEX. Với giá tiền thiết bị Leaf là 28000$ và thiết bị FEX là 13225$ thì tổng giá thành sẽ là 28000$ x 2 + 13225$ x 12 = 214700$.
Để hỗ trợ 192 server thì ta cần 8 thiết bị Leaf. Như vậy tổng giá thành sẽ là 28000$ x 8 = 224000$
 
Về chi phí triển khai, ta có thể tiết kiệm 9300$ khi triển khai FEX.
Về hiệu suất, Leaf hỗ trợ UPLINK lên đến 480Gbps, trên thực tế không phải hệ thống nào cũng có thể chạy hết hiệu suất của 1 Port 10Gbps. Vì vậy ta nên sử dụng các thiết bị FEX để tận dụng tối đa hiệu suất của thiết bị Leaf
5. Vấn đề
Khi tích hợp FEX vào hệ thống OpenStack – ACI thì OpenStack không thể cung cấp tài nguyên để triển khai được máy chủ ảo hay mạng ảo
Nguyên nhân là vì dịch vụ Neutron của OpenStack không hiểu được định dạng cổng kết nối khi FEX được gắn vào switch Leaf
6. Giải quyết / Resolving
Làm cho OpenStack hiểu định dạng cổng kết nối của FEX bằng cách viết lại trình điều khiển.
Định nghĩa cách cấu hình cho port fex, vpc cho fex
  • Bình thường cấu hình cho leaf sẽ là 1/27
  • Ta sẽ thay đổi cấu hình của port như sau
    • Port FEX bình thường: 111/1/27
      • 111: ID của FEX
      • 1/27: Port trên leaf
    • Port Fex sử dụng VPC: 111-112/vpc-1-17/PublicCloud-Compute-1
      • 111 – 112: ID của 2 FEX
      • vpc-1-17:
        • vpc: prefix để nhận biết sẽ chạy ở
        • 1-17 là port trên FEX
    • PublicCloud-Compute-1: tên của group port chanel
Vì trong code chỉ cho phép ta hiểu cấu hình có template a/b. Nhưng chúng ta lại muốn cấu hình sẽ có dạng a/b/c.
Vì vậy cần sửa lại như sau: code sẽ hiểu được định dạng a/b/c, khi parse sẽ nhận lại 3 tham số thay vì chỉ 2 tham số như code ban đầu.
Thay đổi các thông số khi gọi API đối với fex
  • Khi gọi API lên ACI, client cần truyền các tham số để có thể tạo những thứ cần thiết vì vậy cần phải define thêm các giá trị sau:
Thay đổi thông tin khi gọi API tạo bind cho port trên FEX
Ta define thêm 1 function cho phép lấy thông tin ID của cặp FEX khi cấu hình VP
  • function name: get_fex_config_from_switch_conf
  • dựa vào module và port để lấy ra được thông tin của cặp ID FEX được cấu hình thông qua file cấu hình
Thêm tham số fex có giá trị default là None trên function get_static_binding_pdn
Khi function ensure_path_binding_for_port gọi tới funcion get_static_binding_pdn sẽ truyền thêm tham số fex để function get_static_binding_pdn biết sẽ chọn template nào
  • Nếu tham số fex không None thì sẽ chọn template pdn cấu hình cho port fex (line 837) và vpc port fex(line 844)
  • Nếu tham số fex bằng None thì sẽ chọn template pdn cấu hình cho port leaf bình thường
Như vậy cách sửa trên sẽ giúp hỗ trợ cấu hình trên port fex, VPC cho port fex hoặc sử dụng Port leaf thông thường.
Vũ Tống Minh – FTEL 
Tin liên quan: