Giao thức truyền thông iSCSI

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải pháp mạng lưu trữ SAN và công nghệ fibre channel áp dụng cho xây dựng mạng lưu trữ tại kho lưu trữ trung ương Đảng (Trang 40 - 46)

CHƢƠNG 2 CÔNG NGHỆ MẠNG LƢU TRỮ SAN

2.1. Công nghệ truyền thông trong mạng lƣu trữ

2.1.3. Giao thức truyền thông iSCSI

iSCSI là một giao thức lớp truyền tải (transport) của SCSI dùng để truyền dữ liệu SCSI qua mạng TCP/IP bằng cách thay thế giao thức truyền song song SCSI trực tiếp qua cáp với giao thức truyền nối tiếp TCP/IP.

iSCSI là một chuẩn chính thức đƣợc phê duyệt vào 11-2-2003 bởi tổ chức Internet Engineering Task Force (IETF) cho phép truyền nối tiếp dữ liệu SCSI (lệnh, dữ liệu) qua mạng IP dựa trên nền tảng giao thức TCP/IP để có thể truyền dữ liệu với khoảng cách xa với qui mô mạng rộng.

2.1.3.1. Lớp giao thức iSCSI

Cấu trúc lớp trong giao thức iSCSI (Hình 2.6) gồm 4 lớp: Lớp SCSI - các lệnh Command Set cho máy chủ và thiết bị truyền thông; Lớp iSCSI - định hƣớng gói tin cho kết nối mạng; Lớp TCP - truyền tin cậy ; Lớp IP - kết nối với cơ sở hạ tầng mạng IP.

Hình 2.6. Cấu trúc lớp trong giao thức iSCSI

Cấu trúc phân lớp cho thấy SCSI đƣợc ánh xạ tới TCP/IP qua lớp iSCSI. Một kiến trúc SCSI thuần túy dựa trên mẫu client/server. Một client gọi là “initiator” đƣa ra các lệnh SCSI hay khởi tạo các yêu cầu đọc dữ liệu hay ghi từ một máy chủ đích (một hệ thống lƣu trữ dữ liệu) gọi là “Target”. Các lệnh SCSI đƣợc gửi đi từ initiators (client) và đƣợc xử lý bởi máy target (server), các lệnh SCSI đƣợc đặt trong khối mô tả lệnh Command Descriptor Block (CDB). Chức năng chính của giao thức iSCSI là đóng gói và chuyển tin

Internet SCSI (iSCSI) Internet Protocol

(TCP/IP)

IP Network (SAN, LAN,

WAN)

SCSI Bus Protocol SCSI Command Set

cậy các CDB giữa các initiators và target qua mạng TCP/IP.

Lớp iSCSI quản lý quá trình trao đổi thông điệp giữa initiator và target:

+ Hướng đi ra (initiator và target):

<1> Lớp SCSI thiết lập lệnh SCSI CDB và chuyển qua lớp iSCSI.

<2> Lớp iSCSI thiết lập PDU và đặt chúng vào một hay nhiều kết nối TCP/IP <3> Kết nối TCP thiết lập mối liên hệ giữa “Session” của initiator-target.

+ Hướng đi vào (initiator và target)

<1> Lớp iSCSI nhận PDU trong một hay nhiều kết nối TCP của TCP/IP. <2> Lớp iSCSI tách SCSI CDB khỏi iSCSI PDU và chuyển qua lớp SCSI.

Nhƣ vậy, lớp iSCSI layer đóng vai trò nhƣ lớp mạng Network (trong mô hình OSI) hay lớp Internet (mô hình TCP/IP) cung cấp dịch vụ đóng gói các

gói tin và truyền các gói tin trên kết nối TCP/IP đã đƣợc xây dựng.

Hình 2.7. Mô hình các tầng giao thức iSCSI

Quá trình trao đổi thông điệp hay trật tự đóng gói của các lệnh iSCSI giữa initiator (host A) và target (host B) nhƣ sau: Quá trình bắt đầu khi ứng dụng gửi yêu cầu tới hệ điều hành OS để đọc và viết dữ liệu. OS phát lệnh SCSI và dữ liệu yêu cầu thích hợp trong mẫu thông điệp. Trƣớc khi thông điệp có thể gửi qua mạng IP, nó đƣợc xử lý qua iSCSI để gói yêu cầu trong giao thức TCP/IP stack (gắn định tuyến, kiểm tra lỗi, điều khiển thông tin) cho truyền tải qua mạng. Khi gói tin đi đến thiết bị target, chúng đi qua qui trình ngƣợc lại để tập hợp lại dữ liệu, chúng sau đó đƣợc chuyển tới bộ điều

khiển SCSI. Bộ điều khiển SCSI thực hiện yêu cầu bằng cách viết dữ liệu hay đọc dữ liệu từ thiết bị target. Nếu nó là giao địch đọc, target gửi trả dữ liệu tới initiator sử dụng giao thức iSCSI.

So sánh mô hình phân tầng (lớp): OSI , TCP/IP, iSCSI:

Mô hình OSI Mô hình TCP/IP Mô hình iSCSI

Tên Tầng Tên Tầng Tên Tầng Application 7 Application 4 Application 5 Presentation 6 Session 5 Transport 3 Session (SCSI layer) 4 Transport 4 Network 3 Internet 2 iSCSI layer 3 TCP/IP 2 Data Link 2 Network

Interface 1

Network Interface

(Ethernet) 1

Physical 1

Bảng 2.6. Bảng so sánh các tầng/lớp trong các mô hình mạng

2.1.3.2. Khung dữ liệu (Frame)

Khung dữ liệu hay gói tin iSCSI có độ dài tối tối đa 1526 byte, kích cỡ gói số liệu tiêu đề (header) theo tiêu chuẩn Ethernet là 66byte, kích cỡ dữ liệu có thể mang trong gói dữ liệu Ethernet là 454-1460byte.

Cấu trúc khung dữ liệu:

Preamble Destination Address

Source Address

Type Data Segment Frame Check Seq IP TCP iSCSI PDU (Data)

8 byte 6 byte 6 byte 2 byte 46-1500 byte 4 byte Bảng 2.7. Cấu trúc Khung Ethernet chứa dữ liệu iSCSI

Giao thức iSCSI truyền dữ liệu qua mạng TCP/IP không đạt hiệu quả cao trong việc tận dụng băng thông bởi nó phải thực hiện việc gắn/bỏ tiêu đề ở cả hai tầng TCP và IP, do đó làm tăng thời gian xử lý.

2.1.3.3. Đặc tính của giao thức

Do truyền tất cả các gói dữ liệu trên một kết nối, nên iSCSI phải kiểm soát thứ tự truyền, lƣu lƣợng, phát hiện và sửa lỗi... nhƣ chức năng của lớp Transport (của mô hình OSI hay TCP/IP).

- Kiểm soát thứ tự truyền: Chức năng của lớp Session giống nhƣ chức năng của lớp Session (phiên) trong mô hình OSI hay lớp Transport (mô hình TCP/IP) đóng vai trò “kiểm soát hội thoại” của mạng với nhiệm vụ thiết lập, duy trì và đồng bộ hóa tính liên tác giữa hai bên. Lớp phiên đƣợc thiết lập để nhận diện tất cả những kết nối giữa initiator và target. Target tuân theo cổng chuẩn TCP hoặc cấu hình cổng TCP để nhận kết nối.

Phiên iSCSI bao gồm một Login Phase và một Full Feature Phase. Login đƣợc sử dụng để điều chỉnh các tham số giữa hai thực thể mạng và xác nhận quyền truy cập của một initiator. Nếu iSCSI Login Phase đƣợc thành công trọn vẹn khi target xác nhận đăng nhập từ initiator; ngƣợc lại đăng nhập không đƣợc xác nhận và một kết nối TCP bị phá vỡ. Ngay khi đăng nhập đƣợc xác nhận, phiên iSCSI chuyển sang Full Feature Phase và initiator bắt đầu thực hiện SCSI I/O. Trong Full Feature Phase, initiator gửi lệnh SCSI và dữ liệu tới target bằng gói lệnh trong PDU và đi qua iSCSI session. Nếu có hơn một kết nối TCP đƣợc thiết lập, iSCSI yêu cầu rằng mỗi cặp command/response sẽ đi qua một kết nối TCP. Do đó, mỗi lệnh đọc hay ghi riêng sẽ đƣợc mang đi mà không cần phải dò từng yêu cầu cho các dòng dữ liệu khác nhau qua. Tuy nhiên, các thực hiện khác nhau có thể đƣợc phân phối qua các kết nối TCP khác nhau trong cùng một phiên. Cuối mỗi phiên thực hiện, initiator gửi/nhận dữ liệu một đáp ứng xác nhận rằng dữ liệu đã đƣợc truyền thành công. Lệnh Logout iSCSI đƣợc dùng để hoàn thành một phiên – nó phân phối thông tin về các lý do kết thúc. Nó cũng có thể gửi thông tin về kết nối nào nên đƣợc ngắt trong trƣờng hợp kết nối bị lỗi, để có thể đóng các kết nối TCP rắc rối đó. Quá trình iSCSI Login Phase cũng giống nhƣ quá trình FC Port Login (PLOGI) .

- Kiểm soát lỗi. Khi iSCSI triển khai qua hai mạng chuẩn là mạng IP và WAN thì có tỉ lệ lỗi cao, đặc biệt WAN, vì tỉ lệ lỗi tăng với khoảng cách và số thiết bị trong truyền thông. Những lỗi có khả năng xẩy ra ở một số mức, bao gồm ở mức iSCSI (mất kết nối máy chủ), mức kết nối TCP (mất kết nối TCP)

và mức SCSI (mất hoặc hỏng PDU).

Giao thức iSCSI cung cấp rất nhiều phƣơng pháp để phát hiện lỗi, xử lý lỗi. Để phát hiện lỗi và khôi phục lỗi có thể hoạt động chính xác, initiator và target có bộ nhớ đệm cho các lệnh command và response trƣớc khi chúng đƣợc xác nhận. Nếu target không thông báo đã nhận dữ liệu vì mất hoặc hỏng thì bộ nhớ đệm dữ liệu không thể gửi lại qua initiator, target hay switch.

Mỗi thiết bị đầu cuối phải có khả năng khôi phục có chọn lựa những PDU bị hỏng hay mất trong một phiên xử lý để khôi phục dữ liệu truyền. Hệ thống phân cấp xử lý lỗi và khôi phục sau hƣ hỏng của iSCSI: Mức thấp nhất - nhận dạng của một lỗi và khôi phục dữ liệu trên mức nhiệm vụ SCSI, ví dụ, truyền lại các khối dữ liệu bị hỏng hay mất. Mức tiếp – khôi phục lại một kết nối TCP truyền một nhiệm vụ SCSI có thể có các lỗi. Mức cuối cùng, phiên iSCSI có thể bị hỏng-tình huống nhƣ thế yêu cầu tất cả các kết nối TCP phải đƣợc đóng lại, tất cả các nhiệm vụ, các lệnh SCSI phải đƣợc hoàn thành, phiên đƣợc khởi động lại qua đăng nhập lại. Phiên iSCSI có thể thiết lập lại bởi iSCSI initiator. Initiator cố gắng kết nối lại với target, tiến tục cho đến khi kết nối đƣợc thiết lập lại.

- Bảo mật. Từ khi iSCSI hoạt động trên môi trƣờng Internet, an ninh

mạng là vấn đề quan trọng. Giao thức IP tự nó không thể xác nhận tính hợp pháp của nguồn dữ liệu, và cũng không bảo vệ dữ liệu truyền. Bởi vậy, iSCSI yêu cầu có biện pháp chặt chẽ để đảm bảo an ninh qua mạng IP. Giao thức iSCSI sử dụng các biện pháp an ninh IP (IP Sec): truyền thông các điểm cuối (initiator, target) phải đƣợc xác thực; dữ liệu truyền đƣợc mã hoá; tính toàn vẹn của dữ liệu đƣợc duy trì; dữ liệu không xử lý nhiều hơn một lần, cho dù là đƣợc nhận nhiều lần. Ví dụ, iSCSI cũng yêu cầu giao thức xác nhận hiệu lệnh bắt tay CHAP (Challenge Handshake Authenticaion Protocol) đƣợc thực hiện để xác nhận đặc tính nút mạng cuối.

2.1.3.4. Hạn chế

mạng IP để truyền tải luồng dữ liệu giữa các thiết bị trong SAN. Tuy nhiên, thời gian dành cho xử lý thông tin, sắp xếp và truyền tải thông tin đƣợc xem là những hạn chế tiềm tàng của iSCSI, ảnh hƣởng trực tiếp tới hiệu suất.

- Giảm hiệu suất truyền tải do CPU phải xử lý ban đầu cho TCP: Hạn

chế trong hệ thống iSCSI một phần do xử lý ban đầu (overhead) liên quan tới giao thức TCP/IP. SCSI qua TCP/IP làm hiệu suất giảm (đặc biệt cao trong truyền thông) bởi CPU của máy chủ tham gia xử lý ban đầu nhiều cho giao thức TCP/IP. Giao thức xử lý TCP/IP và iSCSI đƣợc thực hiện bằng phần mềm điều khiển nên khối lƣợng xử lý từ CPU dành cho công việc xử lý không phải ứng dụng tăng đáng kể. Với 1Gb/s Ethernet giao thức xử lý có thể tăng lƣợng xử lý của CPU tốc độ 1GHz tới 100%. Hạn chế hiệu suất là điểm khác biệt với FC, bởi FC không có thời gian xử lý ban đầu TCP/IP overhead.

Để giảm việc sử dụng CPU tới mức có thể chấp nhận, công nghệ phải chuyển gánh nặng giao thức xử lý (offload) tới thành phần phần cứng chuyên dụng hơn nhƣ card điều hợp (HBA, NIC). iSCSI xử lý các chức năng có thể chạy phần mềm điều khiển và gửi qua chuẩn Ethernet NIC, hoặc nó có khả năng tối ƣu phần cứng cho hiệu suất tốt nhất trong iSCSI HBA. TCP/IP offload engine (TOE-phƣơng tiện chuyển xử lý TCP/IP) là phần mềm và/hoặc phần cứng gắn vào trong chíp hoặc trong bộ điều hợp mạng NIC đóng vai trò xử lý TCP/IP. Tƣơng tự, iSCSI Offload Engine là phần mềm và/hoặc phần cứng gắn vào trong bộ điều hợp mạng HBA để thực hiện giao thức xử lý iSCSI. Bộ điều hợp iSCSI cho hai mục đích (mạng và thiết bị lƣu trữ) sẵn sàng để xử lý cả hai chức năng chuyển xử lý TOE và iSCSI. Bộ điều hợp iSCSI (HBA và NIC) hiện nay là 1Gb/s. Ngoài chuyển xử lý TCP/IP, quá trình mã hoá và giải mã các đơn vị dữ liệu iSCSI PDU có thể chuyển xử lý cho iSCSI Offload Engine để nâng cao hiệu suất của hệ thống.

- Trễ trong phân phối gói tin: Nguyên nhân trễ xẩy ra trong quá trính xử lý các gói tin bởi phƣơng pháp phân phối các gói tin khác nhau giữa hai giao thức TCP/IP và iSCSI. Đối với các gói IP đƣợc phân phối không cần một trật

tự chặt chẽ. Trong khi iSCSI nhƣ một giao diện kênh, tại cùng một thời điểm, tất cả các gói phải đƣợc phân phối ngay khi một gói khác vừa đƣợc truyền. Việc vi phạm trật tự truyền gói tin có thể dẫn đến mất mát dữ liệu. Ƣớc tính độ trễ trong quá trình xử lý gói tin giữa hai giao thức là 75 microseconds.

Nhƣ vậy, chƣớng ngại vật duy nhất cho phổ cập hóa Ethernet nhƣ một công nghệ cơ bản để thiết lập SAN là ở độ trễ lớn. Vấn đề trễ trở thành yếu tố quan trọng trong trƣờng hợp có đồng thời hàng ngàn truy cập tới các file. Vì vậy iSCSI chƣa thật sự triển khai rộng rãi trong thực tế cho môi trƣờng SAN.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giải pháp mạng lưu trữ SAN và công nghệ fibre channel áp dụng cho xây dựng mạng lưu trữ tại kho lưu trữ trung ương Đảng (Trang 40 - 46)