Cách thiết lập máy chủ lưu trữ iSCSI trên Ubuntu 18.04 LTS

theanh

Administrator
Nhân viên
iSCSI là viết tắt của (Internet Small Computer System Interface) là một giao thức Storage Area Network (SAN) có thể được sử dụng để quản lý lưu trữ trực tuyến. Đây là một tiêu chuẩn mạng lưu trữ dựa trên IP cung cấp quyền truy cập cấp khối vào các thiết bị lưu trữ bằng cách truyền lệnh SCSI qua mạng TCP/IP.

iSCSI bao gồm hai thành phần là iSCSI target và iSCSI initiator. Mục tiêu iSCSI là một dịch vụ trên máy chủ iSCSI cung cấp quyền truy cập vào bộ lưu trữ được chia sẻ và bộ khởi tạo iSCSI là một máy khách iSCSI kết nối với mục tiêu và truy cập vào bộ lưu trữ được chia sẻ.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập mục tiêu iSCSI và bộ khởi tạo iSCSI trên máy chủ Ubuntu 18.04.

Yêu cầu​

  • Máy chủ Ubuntu 18.04 mới cho mục tiêu iSCSI với ổ cứng ngoài 2 GB.
  • Máy chủ Ubuntu 18.04 mới cho bộ khởi tạo iSCSI.
  • Địa chỉ IP tĩnh 192.168.0.103 được định cấu hình trên mục tiêu iSCSI và 192.168.0.102 được định cấu hình trên bộ khởi tạo iSCSI.
  • Mật khẩu gốc được định cấu hình trên cả hai máy chủ.

Bắt đầu​

Trước bắt đầu, bạn sẽ cần cập nhật cả hai máy chủ lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng cách chạy lệnh sau trên cả hai $
Mã:
apt-get update -y
 apt-get upgrade -y
Sau khi cả hai máy chủ được cập nhật, hãy khởi động lại chúng để áp dụng các thay đổi.

Cài đặt iSCSI Target​

Trước tiên, bạn sẽ cần cài đặt gói Target Framework (TGT) trên máy chủ mục tiêu iSCSI. Bạn có thể cài đặt nó bằng lệnh sau:
Mã:
apt-get install tgt -y
Sau khi TGT đã được cài đặt, hãy kiểm tra trạng thái của TGT bằng cách chạy lệnh sau:
Mã:
systemctl status tgt
Bạn sẽ thấy đầu ra sau:
Mã:
? tgt.service - (i)SCSI target daemon Đã tải: đã tải (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2019-11-08 07:40:28 UTC; 27 giây trước Tài liệu: man:tgtd(8) PID chính: 2343 (tgtd) Trạng thái: "Đang bắt đầu vòng lặp sự kiện..." Nhiệm vụ: 1 CGroup: /system.slice/tgt.service ??2343 /usr/sbin/tgtd -f08/11 07:40:28 ubuntu systemd[1]: Đang bắt đầu daemon mục tiêu (i)SCSI...08/11 07:40:28 ubuntu tgtd[2343]: tgtd: iser_ib_init(3431) Không khởi tạo được RDMA; tải các mô-đun hạt nhân?Nov 08 07:40:28 ubuntu tgtd[2343]: tgtd: work_timer_start(146) sử dụng bộ lập lịch dựa trên timer_fdNov 08 07:40:28 ubuntu tgtd[2343]: tgtd: bs_init(387) sử dụng thông báo signalfdNov 08 07:40:28 ubuntu systemd[1]: Đã khởi động (i)SCSI target daemon.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình iSCSI Target​

Tiếp theo, bạn sẽ cần tạo một thiết bị LUN (Logical Unit Number) trên máy chủ iSCSI của mình. LUN là thiết bị lưu trữ phụ trợ mà trình khởi tạo sẽ kết nối và sử dụng sau này.

Bạn có thể thực hiện bằng cách tạo tệp cấu hình bên trong thư mục /etc/tgt/conf.d:
Mã:
nano /etc/tgt/conf.d/iscsi.conf
Thêm các dòng sau:
Mã:
 # Cung cấp thiết bị làm mục tiêu iSCSI backing-store /dev/sdb1 initiator-address 192.168.0.102 incominguser iscsi-user password outgoinguser iscsi-target secretpass
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ TGT để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart tgt
Sau đây là giải thích ngắn gọn về từng tham số:

target : Đây là tên của mục tiêu cụ thể.

backing-store : Tùy chọn này chỉ định đĩa lưu trữ sẽ được người khởi tạo sử dụng.

initiator-address : Đây là địa chỉ IP của người khởi tạo.

incominguser : Đây là tên người dùng/mật khẩu đến để bảo mật LUN.

outgoinguser : Đây là tên người dùng/mật khẩu đi để xác thực CHAP lẫn nhau.

Sau khi khởi động lại dịch vụ TGT, hãy kiểm tra máy chủ mục tiêu iSCSI bằng lệnh sau:
Mã:
tgtadm --mode target --op show
Bạn sẽ thấy mục tiêu iSCSI đang được tạo có sẵn:
Mã:
Mục tiêu 1: iqn.2019-11.example.com:lun1 Thông tin hệ thống: Trình điều khiển: iscsi Trạng thái: sẵn sàng Thông tin I_T nexus: Thông tin LUN: LUN: 0 Loại: bộ điều khiển ID SCSI: IET 00010000 SN SCSI: beaf10 Kích thước: 0 MB, Kích thước khối: 1 Trực tuyến: Có Phương tiện lưu trữ di động: Không Ngăn chặn xóa: Không Chỉ đọc: Không SWP: Không Cung cấp mỏng: Không Loại lưu trữ sao lưu: null Đường dẫn lưu trữ sao lưu: Không Cờ lưu trữ sao lưu: LUN: 1 Loại: đĩa ID SCSI: IET 00010001 SN SCSI: beaf11 Kích thước: 2146 MB, Kích thước khối: 512 Trực tuyến: Có Phương tiện lưu trữ di động: Không Ngăn chặn xóa: Không Chỉ đọc: Không SWP: Không Cung cấp mỏng: Không Loại lưu trữ sao lưu: rdwr Đường dẫn lưu trữ sao lưu: /dev/sdb1 Cờ lưu trữ sao lưu: Thông tin tài khoản: iscsi-user Thông tin ACL iscsi-target (outgoing): 192.168.0.102

Cài đặt và cấu hình iSCSI Initiator​

Tiếp theo, bạn sẽ cần cài đặt gói iSCSI initiator trên máy chủ iSCSI initiator. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install open-iscsi -y
Sau khi cài đặt hoàn tất, hãy chạy lệnh khám phá mục tiêu trên máy chủ mục tiêu iSCSI của chúng tôi để tìm ra các mục tiêu được chia sẻ.
Mã:
iscsiadm -m discovery -t st -p 192.168.0.103
Bạn sẽ thấy mục tiêu khả dụng trong đầu ra sau:
Mã:
192.168.0.103:3260,1 iqn.2019-11.example.com:lun1
Lệnh trên cũng tạo ra hai tệp có thông tin LUN. Bạn có thể xem chúng bằng lệnh sau:
Mã:
ls -l /etc/iscsi/nodes/iqn.2019-11.example.com\:lun1/192.168.0.103\,3260\,1/ /etc/iscsi/send_targets/192.168.0.103,3260/
Bạn sẽ thấy các tệp sau:
Mã:
/etc/iscsi/nodes/iqn.2019-11.example.com:lun1/192.168.0.103,3260,1/:tổng số 4-rw------- 1 root root 1840 8 tháng 11 13:17 mặc định/etc/iscsi/send_targets/192.168.0.103,3260/:tổng số 8lrwxrwxrwx 1 root root 66 8 tháng 11 13:17 iqn.2019-11.example.com:lun1,192.168.0.103,3260,1,default -> /etc/iscsi/nodes/iqn.2019-11.example.com:lun1/192.168.0.103,3260,1-rw------- 1 root root 547 8 tháng 11 13:17 st_config
Tiếp theo, bạn sẽ cần chỉnh sửa tệp mặc định và xác định thông tin CHAP mà bạn đã định cấu hình trên mục tiêu iSCSI để truy cập mục tiêu iSCSI từ trình khởi tạo iSCSI.
Mã:
nano /etc/iscsi/nodes/iqn.2019-11.example.com\:lun1/192.168.0.103\,3260\,1/default
Thêm / Thay đổi các dòng sau:
Mã:
node.session.auth.authmethod = CHAPnode.session.auth.username = iscsi-usernode.session.auth.password = passwordnode.session.auth.username_in = iscsi-targetnode.session.auth.password_in = secretpassnode.startup = automatic
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ khởi tạo iSCSI để áp dụng các thay đổi cấu hình:
Mã:
systemctl restart open-iscsi
Bạn sẽ thấy kết quả sau:
Mã:
* Gỡ gắn hệ thống tệp được iscsi hỗ trợ [OK] * Ngắt kết nối các mục tiêu iSCSI iscsiadm: Không tìm thấy phiên phù hợp [OK] * Dừng dịch vụ khởi tạo iSCSI [OK] * Khởi động dịch vụ khởi tạo iSCSI iscsid [OK] * Thiết lập các mục tiêu iSCSIĐang đăng nhập vào [iface: default, target: iqn.2019-11.example.com:lun1, portal: 192.168.0.103,3260] (nhiều)Đăng nhập vào [iface: default, target: iqn.2019-11.example.com:lun1, portal: 192.168.0.103,3260] thành công. [ OK ] * Gắn hệ thống tệp mạng [ OK ]
Bây giờ bạn có thể kiểm tra đĩa lưu trữ được chia sẻ từ mục tiêu iSCSI bằng lệnh sau:
Mã:
lsblk
Bạn sẽ thấy đĩa lưu trữ hiện có sẵn cho trình khởi tạo dưới dạng sdb:
Mã:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 465.8G 0 disk??sda1 8:1 0 93.1G 0 part /??sda2 8:2 0 1K 0 part??sda5 8:5 0 186.3G 0 part /home??sda6 8:6 0 181.6G 0 part /Data??sda7 8:7 0 4.8G 0 part [SWAP]sdb 8:16 0 2G 0 disk
Bạn cũng có thể xác minh các kết nối iSCSI bằng lệnh sau:
Mã:
tgtadm --mode conn --op show --tid 1
Bạn sẽ nhận được kết quả sau:
Mã:
Phiên: 1 Kết nối: 0 Người khởi tạo: iqn.1993-08.org.debian:01:2e1e2383de41 Địa chỉ IP: 192.168.0.102
Tiếp theo, bạn sẽ cần tạo một hệ thống tệp trên thiết bị dùng chung này (sdb) và gắn kết nó để thiết bị này có thể sử dụng được.

Đầu tiên, hãy tạo một hệ thống tệp trên thiết bị dùng chung (sdb) bằng lệnh sau:
Mã:
fdisk /dev/sdb
Bạn sẽ thấy kết quả sau:
Mã:
Chào mừng đến với fdisk (util-linux 2.31.1).Các thay đổi sẽ chỉ nằm trong bộ nhớ, cho đến khi bạn quyết định ghi chúng.Hãy cẩn thận trước khi sử dụng lệnh write.Thiết bị không chứa bảng phân vùng được nhận dạng.Đã tạo nhãn đĩa DOS mới với mã định danh đĩa 0x06091fe8.Lệnh (m để được trợ giúp): nLoại phân vùng p chính (0 chính, 0 mở rộng, 4 trống) e mở rộng (bộ chứa cho các phân vùng logic)Chọn (mặc định p): pSố phân vùng (1-4, mặc định 1):Khu vực đầu tiên (2048-4194303, mặc định 2048):Khu vực cuối cùng, +sectors hoặc +size{K,M,G,T,P} (2048-4194303, mặc định 4194303):Đã tạo phân vùng mới 1 thuộc loại 'Linux' và có kích thước 2 GiB.Lệnh (m để được trợ giúp): wBảng phân vùng đã bị thay đổi.Gọi ioctl() để đọc lại bảng phân vùng.Đồng bộ hóa đĩa.
Tiếp theo, định dạng phân vùng này bằng lệnh sau:
Mã:
mkfs.ext4 /dev/sdb1
Tiếp theo, gắn phân vùng này vào thư mục /mnt bằng lệnh sau:
Mã:
mount /dev/sdb1 /mnt
Bây giờ, bạn có thể kiểm tra thiết bị đã gắn bằng lệnh sau:
Mã:
df -h
Bạn sẽ thấy đầu ra sau:
Mã:
Kích thước hệ thống tệp đã sử dụng Có sẵn Sử dụng% Đã gắn trênudev 1,9G 4,0K 1,9G 1% /devtmpfs 384M 1,2M 383M 1% /run/dev/sda1 92G 36G 51G 42% /none 4,0K 0 4,0K 0% /sys/fs/cgroupnone 5.0M 0 5.0M 0% /run/locknone 1.9G 54M 1.9G 3% /run/shmnone 100M 48K 100M 1% /run/user/dev/sda5 184G 96G 79G 55% /home/dev/sda6 179G 32G 138G 19% /Data/dev/sdb1 2.0G 3.0M 1.9G 1% /mnt
Xin chúc mừng! bạn đã cài đặt thành công máy chủ đích iSCSI và kết nối nó từ bộ khởi tạo iSCSI. Bây giờ bạn có thể sử dụng thiết bị iSCSI dùng chung này như đĩa được gắn bình thường.
 
Back
Bên trên