Hiệu suất thấp cả iSCSI và AoE


9

Chúng tôi đang tìm kiếm một lưu trữ tốc độ cộng hưởng. Do ngân sách thấp, chúng tôi quyết định sử dụng các mục tiêu iSCSI hoặc AoE phần mềm. Trước khi chúng tôi thay đổi cơ cấu hạ tầng sản xuất, chúng tôi đang thực hiện một số thử nghiệm để chọn công nghệ tốt nhất.

Để thử nghiệm, chúng tôi sử dụng:

  • Fujitsu Siemens RX200 S4 làm mục tiêu
  • Fujitsu Siemens RX200 S4 là người khởi xướng
  • NetGear quản lý chuyển đổi 1GBit
  • các NIC trên tàu (Broadcom w / TOE), các EdiMax, các Broadcom NIC / w - TOE - tất cả 1GBit
  • máy chủ mục tiêu đang sử dụng bộ điều khiển QLogic với 6 ổ đĩa WD Blue SATA 2TB.
  • cả hệ điều hành khởi động và đích là Ubuntu 16.04 LTS với tất cả các bản cập nhật. Switch được dành riêng cho mục đích lưu trữ. Chúng tôi kiểm tra trái phiếu và đa đường.

Vấn đề của chúng tôi là tốc độ đọc thấp. Để thử nghiệm, chúng tôi sử dụng ddvà một tệp 40-100GB.

  • đọc và ghi cục bộ trên một máy chủ mục tiêu là hơn 300MB / s.
  • ghi vào máy chủ bởi iSCSI hoặc AoE là hơn 200 MB / s thỏa mãn chúng tôi.
  • đọc từ máy chủ luôn là 95-99MB / s.

Chúng tôi đã thử ietd, aoetools, LIO. Chúng tôi đã sử dụng trái phiếu của 2 NIC: thăng bằng-rr và LACP, đa đường với rr. Được sử dụng khung bình thường và jumbo. Cuối cùng, chúng tôi thậm chí đã thực hiện kết nối ethernet trực tiếp giữa mục tiêu và máy chủ (không có chuyển đổi).

Tất cả các bài kiểm tra đều cho ít kết quả giống nhau hơn (tất nhiên sử dụng các NIC thông thường không có TOE và iSCSI cho kết quả tồi tệ hơn 20-30%).

Mạng thử nghiệm với iperf cho thấy chuyển khoảng 200MB / s (2GBit). Việc xem sử dụng NIC trên mục tiêu bằng bmon cho thấy mức độ sử dụng bằng nhau của cả hai thiết bị (mỗi thiết bị khoảng 50MB / giây để đọc, khoảng 100 MB / giây để viết).

Vì không có may mắn, chúng tôi quyết định sử dụng một NIC thứ ba (tất nhiên cả hai mặt). Kết quả thật kỳ lạ:

  • 2 NIC - mỗi 50 MB / s
  • 3 NIC - mỗi 33MB / s

Có giới hạn nào đối với phần mềm mục tiêu vô hiệu hóa đầu ra cao hơn 1GBit / s không?

Chúng ta làm gì sai?


5
10GbE là đủ rẻ những ngày này. Nếu bạn cần thêm băng thông (mà bạn có thể không), đó là đường dẫn được đề xuất.
ewwhite

1
10 GbE sẽ không giúp với ATAoE, đó là một giao thức không hiệu quả trong khung Ethernet. Đặc biệt là cho khung Jumbo!
tướcSamedi1958

1
Tôi đã đề cập đến iSCSI. ATAoE đã chết và không nên được sử dụng cho việc này.
ewwhite

Câu trả lời:


11

Để giảm hiệu suất tối đa ra khỏi bộ lưu trữ được kết nối iSCSI, bạn nên sử dụng Jumbo Frames và MPIO (không phải LACP). RDMA / iSER được khuyến nghị nếu bạn có thể làm điều đó.

AOE (ATA qua Ethernet) đã cũ và là shit. Chúng ta đã thoát khỏi Coraid nhiều năm trước rồi. Chúng tôi đang sử dụng StarWind https://www.starwindsoftware.com/ vì iSCSI đã nhắm mục tiêu khá lâu và StarWind yêu cầu chúng tôi di chuyển khỏi Coraid sang bất kỳ lưu trữ nào chúng tôi có thể làm.

Vì vậy, ngay bây giờ, chúng tôi rất tốt với iSCSI do StarWind cung cấp và sử dụng Windows, ESX và SCST http://scst.sourceforge.net/ trên Linux làm người khởi xướng. Với RDMA / iSER, nó lên tới 10 Gbit, rất hạnh phúc cho đến nay.


6

Kỳ vọng của bạn về cách hoạt động của tập hợp liên kết Ethernet là không chính xác.

Tất cả các phương thức tổng hợp khác với số dư-rr (nghĩa là: tất cả các phương thức có chế độ> 0) không cung cấp cho bạn thông lượng kết nối đơn lớn hơn; thay vào đó, chúng làm tăng tổng băng thông khả dụng khi nhiều kết nối được thiết lập từ / đến các máy chủ bị ảnh hưởng. Nói cách khác, LAG / LACP sẽ không cung cấp cho bạn bất kỳ lợi ích nào cho kịch bản một kết nối này.

Phương pháp tổng hợp duy nhất có thể cung cấp cho bạn thông lượng một phiên lớn hơn so với những gì bạn thường có trên một giao diện duy nhất là thăng bằng rr , phân phối các gói theo kiểu vòng tròn. Bạn phải đặt cân bằng-rr cho cả người khởi tạo và mục tiêu. Tuy nhiên, một nhược điểm lớn là phần lớn phụ thuộc vào chuyển đổi.

Dù sao, nếu bạn đặt cả mục tiêu và bộ khởi tạo thành cân bằng-rr, kết nối trực tiếp hai máy sẽ giúp bạn tăng hiệu suất. Nếu không, bạn có thể đăng bài iperfvới số dư-rr và cả hai máy được kết nối trực tiếp (không có công tắc) không? Ngoài ra, vui lòng gửi ddlệnh chính xác mà bạn đã sử dụng để đo điểm chuẩn.


2

Lưu ý: Tôi chỉ nói về iSCSI ở đây. Tôi không có kinh nghiệm với AoE ngoài việc đọc về nó và tôi sẽ không triển khai nó trong bất kỳ cơ sở hạ tầng mới nào (nó không còn nhiều hạn chế).

Không sử dụng số dư-rr cho bất cứ điều gì khác ngoài một số giao thức điểm-điểm rất cụ thể. Nó có hiệu suất khủng khiếp khi dưới hầu hết mọi loại tải trong thế giới thực và gây ra hàng loạt vấn đề về mạng (chẳng hạn như RẤT NHIỀU jitter). Chắc chắn không sử dụng nó với một công tắc.

Sử dụng MPIO mà không có bất kỳ liên kết nào ở phía người khởi tạo để thực hiện cân bằng tải và khả năng chịu lỗi. Để đảm bảo rằng các đường dẫn của bạn không bị "lẫn lộn" bằng cách gửi tất cả lưu lượng truy cập của bạn xuống một đường dẫn duy nhất, hãy đặt các đường dẫn riêng lẻ (gigabit NIC giữa mục tiêu và bộ khởi tạo, trong trường hợp của bạn) trên các mạng con riêng biệt.

Vui lòng liên kết phía đích với LACP trên mỗi đường dẫn (như trong hai liên kết cho hai đường dẫn cho tổng số bốn NIC, như một cấu hình cổng đích ví dụ). Điều này hoạt động rất tốt và có thể cân bằng nhiều kết nối khởi tạo sử dụng cùng một đường dẫn. Cũng sử dụng khung jumbo và iSER nếu có thể. Sử dụng LACP trên mục tiêu sẽ cân bằng các kết nối với từng đường dẫn giữa một số NIC.

Sử dụng LACP trên bộ khởi tạo sẽ chỉ hiệu quả nếu nó tạo ra nhiều kết nối cổng đích với việc sử dụng đồng thời (không phổ biến đối với bất kỳ khối lượng công việc nào). Ngay cả khi bạn triển khai LACP hiệu quả trên mỗi đường dẫn trên bộ khởi tạo, nó sẽ nhanh chóng trở thành cơn ác mộng cáp khi sử dụng (ví dụ) bốn loại vải bổ sung cho mỗi hộp. Nếu bạn cần nhiều hơn ~ 2Gib / s thông lượng cho một bộ khởi tạo, hãy xem xét ethernet 10GiB / s.


1

Hầu hết các phản hồi về AoE là hoàn toàn không chính xác, phản tác dụng và cho thấy sự thiếu kiến ​​thức và kinh nghiệm về AoE. Trước hết, nó không còn tồn tại. CORAID là nhà cung cấp đằng sau AoE và họ đã khởi động lại với tên là South Southsuite 'trong khi vẫn giữ thương hiệu CORAID. Họ là những nhà phát triển giống nhau, quá. Họ đang làm những sản phẩm mới và hỗ trợ hầu hết những cái cũ. Họ cũng đang thúc đẩy sự phát triển AoE về phía trước, vì danh sách gửi thư kỹ thuật mở của họ hiển thị rõ ràng. Kiểm tra trang web, tất cả đều được cập nhật và kể toàn bộ câu chuyện trên trang lịch sử của họ.

Có người nói AoE sẽ không được hưởng lợi từ các khung khổng lồ và cũng bị sai. Nó được hỗ trợ sau khi phiên bản 13 của 'vbladed' được phát hành. Bạn cần phải điều chỉnh MTU của mình để hỗ trợ kích thước khung hình mới, nhưng nếu không thì nó hoạt động rất tốt.

iSCSI chạy trong lớp 5 của mô hình OSI. Đó là vận chuyển thông thường là TCP. Điều đó cung cấp cho bạn một số sửa lỗi (do tổng kiểm tra trong TCP) và cho phép bạn định tuyến lưu lượng truy cập qua IP ở lớp 3. Đó là về nơi lợi thế của iSCSI dừng lại. Hiệu suất trong thế giới thực của nó hết sức tệ hại khi bạn thực sự so sánh nó với một cái gì đó như FCP, AoE hoặc FCoE. Tôi muốn mời bạn google so sánh hiệu suất iscsi cho chương trình kinh dị.

Sự cố tốc độ đọc của bạn có thể là do cấu hình sai mạng, tắt điều khiển luồng và đảm bảo bạn sử dụng bộ đệm ổ cắm đủ lớn. Bạn cũng không đề cập đến việc hệ thống tập tin cơ bản của bạn đã được điều chỉnh để tìm nạp trước hay chưa. Dựa trên kịch bản của bạn, điều đó có thể giúp bạn rất nhiều, nhưng hãy cẩn thận không sử dụng nó với các cơ sở dữ liệu nhất định có yêu cầu bộ nhớ đệm bị vô hiệu hóa.

Tổng hợp 802.3ad sẽ không tăng thông lượng luồng đơn của bạn rất nhiều, ngay cả trong kịch bản quay vòng. Nó cũng sẽ làm phức tạp cấu hình mạng của bạn và cung cấp cho bạn một vài cơ hội mới để tự bắn vào chân mình bằng cách không khớp các khoảng PDU hoặc cấu hình sai liên kết Cisco VPC của bạn để hỗ trợ trạng thái hoạt động tích cực. Đừng sử dụng LACP với AoE, hãy để nó xử lý đa luồng và ghép kênh riêng của nó. Các phiên bản sau của AoE xử lý việc này rất đẹp và trong hầu hết các trường hợp duyên dáng hơn cả FCP vì tất cả đều tự động. Các cổng Ethernet bổ sung cung cấp cho bạn nhiều băng thông hơn và khả năng phục hồi cao hơn. Nếu bạn trải rộng các cổng Ethernet của máy chủ và bộ khởi tạo trên nhiều thiết bị chuyển mạch, điều đó có thể cung cấp nhiều hơn nữa. Không cần phải cấu hình một chế độ liên kết. Ngoài ra, không chạy IP trên cùng các giao diện bạn sử dụng cho AoE.

Nói tóm lại, đừng nghe những người phản đối AoE, họ có vẻ như họ không có nhiều kinh nghiệm và chỉ đang cưỡi sóng não thời thượng. Thuấn bầy đàn. Đi cấu hình một cửa hàng sao lưu với tìm nạp trước được điều chỉnh bằng tay và có thể bạn sẽ thấy thông lượng đọc của bạn tăng lên. Bỏ việc sử dụng các giao thức tổng hợp và chạy la hét từ iSCSI. Một điều cuối cùng, ngừng sử dụng 'dd', đây không phải là một thử nghiệm tuyệt vời và chịu các hiệu ứng bộ nhớ đệm xấu. Sử dụng một công cụ điểm chuẩn thực sự như 'fio', 'iozone' hoặc 'dbench'. Những người cho kết quả đáng tin cậy hơn nhiều.


1

Tôi biết LACP dành cho nhiều kết nối. Kiểm tra nó là một hành động tuyệt vọng :)

Tất cả các thử nghiệm đã được thực hiện với sự cân bằng-rr và hai NIC.

Ghi vào mục tiêu iSCSI:
dd if = / dev / zero of = / mnt / zero.bin bs = 1M Count = 2000
2000 + 0 przeczytanych recordów
2000 + 0 zapisanych recordów
2097152000 byte (2,1 GB, 2,0 GiB) được sao chép , 10,1093 s, 207 MB / s

Đọc từ mục tiêu iSCSI:
dd if = / mnt / zero.bin của = / dev / null bs = 1M
2000 + 0 przeczytanych recordów
2000 + 0 zapisanych recordów
2097152000 byte (2.1 GB , 2,0 GiB) đã sao chép, 16,1684 giây, 130 MB / s

Tốc độ mạng:
iperf -c 172.16.10.80
------------------------ ------------------------------------
Máy khách kết nối tới 172.16.10.80, cổng
TCP 5001 Kích thước cửa sổ TCP: 325 KByte (mặc định)
--------------------------------------------- ---------------
[3] cổng cục bộ 172.16.10,70 37024 được kết nối với 172.16.10,80 cổng 5001
[ID] Băng thông chuyển giao thời gian
[3] 0,0-10,0 giây 2,30 GB 1,98 Gbits / giây

Thử nghiệm với khung iperf và jumbo cho kết quả tương tự.

Tôi đã đạt được một số tốc độ đọc bằng cách chạy trên bộ khởi tạo:
hdparm -a 2048 / dev / dm-1
Trước đây là 256 và tốc độ đọc là 96MB / s
Mục tiêu của tôi là đạt tốc độ đọc khoảng 200MB / s.

EDIT:
1. Chúng tôi không sử dụng LACP - đó là thử nghiệm một lần.
2. Thử nghiệm với thăng bằng-rr và MPIO cho kết quả chính xác như nhau. Đa luồng đã được thử nghiệm với các NIC trong các mạng con khác nhau.
3. Thêm nhiều NIC không làm tăng tốc độ đọc mà chỉ làm giảm việc sử dụng từng NIC.
4. Chúng tôi nghĩ rằng vấn đề là một số hạn chế (trình điều khiển, mô-đun?) Không cho phép đọc nhanh hơn. Nhưng tôi không chắc chắn, nếu đó là mục tiêu hoặc bên khởi xướng.


EDIT 2: Mới thực hiện một số thử nghiệm bổ sung: được cấu hình cùng một máy chủ làm mục tiêu và người khởi tạo để thoát khỏi các vấn đề phần cứng mạng. Tôi đã bị sốc: chính xác cùng tốc độ đọc! 130 MB / giây! Viết là 227 MB / s.


Bạn cần bật nhiều kết nối cho mỗi phiên để đạt được từ LACP khi bạn sử dụng iSCSI. Không mc / s = không tăng hiệu suất. scst.sourceforge.net/mc_s.htmlstarwindsoftware.com/blog/ khuyên có thể giúp đỡ.
BaronSamedi1958

-2

Làm thế nào bạn có cấu hình nic của bạn là tất cả các bộ đệm được thiết lập đúng, bạn đã phân bổ đủ ram cho bộ đệm mạng. cũng không sử dụng liên kết ở đây, bạn có thể sử dụng 2 kênh iscsi và ghép chúng trên bộ khởi tạo, cùng với ATAoE, bộ đa luồng của bộ khởi tạo thông qua giá và lun ID trên bất kỳ đường dẫn nào.


Có bất kỳ kiểm tra và / hoặc thay đổi cấu hình nào bạn có thể đề xuất thực hiện không? Ngay cả khi bạn không có câu trả lời đầy đủ, nó sẽ giúp câu trả lời của bạn và những người khác nếu bạn có thể đưa ra một số gợi ý để chỉ cho người hỏi đi đúng hướng
iwaseatenbyagrue
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.