iSCSI là viết tắt của Internet Small Computer System Interface, là một giao thức Storage Area Network có thể được sử dụng để chia sẻ các thiết bị khối như phân vùng HDD/SSD hoặc phân vùng LVM hoặc các tệp khối trên mạng. iSCSI hoạt động theo mô hình máy khách-máy chủ và dựa vào mạng TCP/IP để gửi lệnh SCSI giữa máy khách khởi tạo và máy khách mục tiêu. iSCSI Target là một dịch vụ trên máy chủ iSCSI cung cấp quyền truy cập vào bộ nhớ chia sẻ và iSCSI Initiator 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ộ nhớ chia sẻ.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách thiết lập mục tiêu iSCSI và bộ khởi tạo iSCSI trên máy chủ Ubuntu 20.04.
Sau khi tất cả các gói được cập nhật, hãy khởi động lại hệ thống của bạn để áp dụng các thay đổi.
Sau khi cài đặt iSCSI Target, hãy xác minh trạng thái của máy chủ bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Lúc này, iSCSI Target đã được cài đặt trên máy chủ của bạn, giờ bạn có thể tiến hành bước tiếp theo.
Bạn có thể định cấu hình bằng cách tạo tệp cấu hình mới:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Trong đó:
Tiếp theo, xác minh máy chủ iSCSI Target bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tại thời điểm này, máy chủ đích iSCSI đã được cài đặt và cấu hình. Bây giờ bạn có thể tiến hành bước tiếp theo.
Sau khi quá trình cài đặt hoàn tất, hãy khám phá máy chủ đích iSCSI để tìm ra các đích được chia sẻ bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, bạn sẽ cần xác định tên của thiết bị LUN trong initiatorname.iscsi file:
Thêm tên LUN mục tiêu iSCSI của bạn như hiển thị bên dưới:
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, bạn sẽ cần xác định thông tin CHAP mà bạn đã 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. Tệp cấu hình nút sẽ tồn tại trong thư mục ‘/etc/iscsi/nodes/‘ và sẽ có một thư mục cho mỗi LUN khả dụng.
Bạn có thể định nghĩa tệp này bằng cách chỉnh sửa tệp sau:
Thêm/Sửa đổi các dòng sau:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ khởi tạo iSCSI bằng lệnh sau lệnh:
Bạn cũng có thể xác minh trạng thái của dịch vụ bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Bạn cũng có thể xác minh kết nối iSCSI bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bạn cũng có thể xác minh thiết bị lưu trữ được chia sẻ từ mục tiêu iSCSI bằng lệnh sau:
Bạn sẽ thấy thiết bị được chia sẻ sdb trong đầu ra sau:
Trước tiên, hãy tạo một hệ thống tệp trên thiết bị được chia sẻ (sdb) bằng lệnh sau:
Trả lời tất cả các câu hỏi như được hiển thị bên dưới để tạo hệ thống tệp:
Tiếp theo, định dạng phân vùng bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, gắn phân vùng vào thư mục /mnt bằng lệnh sau:
Bây giờ bạn có thể xác minh phân vùng đã gắn kết bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Trong hướng dẫn này, chúng tôi sẽ giải thích cách thiết lập mục tiêu iSCSI và bộ khởi tạo iSCSI trên máy chủ Ubuntu 20.04.
Yêu cầu
- Một hệ thống chạy Ubuntu 20.04 cho mục tiêu iSCSI với ổ cứng ngoài 1 GB.
- Một hệ thống chạy Ubuntu 20.04 mới cho bộ khởi tạo iSCSI.
- Một địa chỉ IP tĩnh 192.168.1.10 được cấu hình trên mục tiêu iSCSI và 192.168.1.20 được cấu hình trên bộ khởi tạo iSCSI.
- Một mật khẩu gốc được cấu hình trên cả hai máy chủ.
Cập nhật Hệ thống
Trước khi bắt đầu, hãy là một ý tưởng hay để cập nhật hệ thống của bạn với các gói mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Cài đặt iSCSI Target
Theo mặc định, gói iSCSI Target có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt bằng cách chạy lệnh sau trên máy chủ iSCSI Target:
Mã:
apt-get install tgt -y
Mã:
systemctl status tgt
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ừ Sat 2020-07-11 07:13:04 UTC; 23 giây trước Tài liệu: man:tgtd(8) PID chính: 7770 (tgtd) Trạng thái: "Đang bắt đầu vòng lặp sự kiện..." Nhiệm vụ: 1 Bộ nhớ: 1,1M CGroup: /system.slice/tgt.service ??7770 /usr/sbin/tgtd -f11/7 07:13:04 ubuntu2004 systemd[1]: Đang bắt đầu daemon mục tiêu (i)SCSI...11/7 07:13:04 ubuntu2004 tgtd[7770]: tgtd: iser_ib_init(3431) Không khởi tạo được RDMA; tải các mô-đun hạt nhân?11/07 07:13:04 ubuntu2004 tgtd[7770]: tgtd: work_timer_start(146) sử dụng bộ lập lịch dựa trên timer_fd11/07 07:13:04 ubuntu2004 tgtd[7770]: tgtd: bs_init(387) sử dụng thông báo signalfd11/07 07:13:04 ubuntu2004 systemd[1]: Đã khởi động (i)SCSI target daemon.
Cấu hình iSCSI Target
Trước tiên, 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ợ là một phần của thiết bị SCSI vật lý. Tất cả các LUN được ánh xạ tới iSCSI Target đều được gắn ảo vào hệ điều hành của máy khách. Do đó, Initiators có thể thiết lập và quản lý hệ thống tệp trên iSCSI LUN.Bạn có thể định cấu hình bằng cách tạo tệp cấu hình mới:
Mã:
nano /etc/tgt/conf.d/iscsi.conf
Mã:
backing-store /dev/sdb initiator-address 192.168.1.20 incominguser iscsi-user password outgoinguser iscsi-target secretpass
Trong đó:
- Dòng đầu tiên định nghĩa tên của LUN.
- Dòng thứ hai định nghĩa vị trí và tên của thiết bị lưu trữ trên máy chủ iSCSI Target.
- Dòng thứ ba định nghĩa địa chỉ IP của iSCSI initiator.
- Dòng thứ tư định nghĩa tên người dùng/mật khẩu đến.
- Dòng thứ năm định nghĩa tên người dùng/mật khẩu mà mục tiêu sẽ cung cấp cho initiator để cho phép xác thực CHAP lẫn nhau diễn ra.
Mã:
systemctl restart tgt
Mã:
tgtadm --mode target --op show
Mã:
Mục tiêu 1: iqn.2020-07.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 liên kết I_T: 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 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 Kiểu 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: Thông tin tài khoản: iscsi-user iscsi-target (gửi đi) Thông tin ACL: 192.168.1.10
Cài đặt và cấu hình iSCSI Initiator
Tiếp theo, hãy đến máy iSCSI initiator và cài đặt gói iSCSI initiator bằng lệnh sau:
Mã:
apt-get install open-iscsi -y
Mã:
iscsiadm -m discovery -t st -p 192.168.1.10
Mã:
192.168.1.10:3260,1 iqn.2020-07.example.com:lun1
Mã:
nano /etc/iscsi/initiatorname.iscsi
Mã:
InitiatorName=iqn.2020-07.example.com:lun1
Tiếp theo, bạn sẽ cần xác định thông tin CHAP mà bạn đã 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. Tệp cấu hình nút sẽ tồn tại trong thư mục ‘/etc/iscsi/nodes/‘ và sẽ có một thư mục cho mỗi LUN khả dụng.
Bạn có thể định nghĩa tệp này bằng cách chỉnh sửa tệp sau:
Mã:
nano /etc/iscsi/nodes/iqn.2020-07.example.com\:lun1/192.168.1.10\,3260\,1/default
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
Mã:
systemctl restart open-iscsi iscsid
Mã:
systemctl status open-iscsi
Mã:
? open-iscsi.service - Đăng nhập vào các mục tiêu iSCSI mặc định Đã tải: đã tải (/lib/systemd/system/open-iscsi.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đã thoát) kể từ Thứ bảy 2020-07-11 07:24:19 UTC; 10 giây trước Tài liệu: man:iscsiadm(8) man:iscsid(8) Quy trình: 3861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS) Quy trình: 3867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS) PID chính: 3867 (code=exited, status=0/SUCCESS)11/7 07:24:19 initiator systemd[1]: Đang bắt đầu Đăng nhập vào các mục tiêu iSCSI mặc định...11/7 07:24:19 initiator iscsiadm[3861]: Đang đăng nhập vào [iface: default, target: iqn.2020-07.example.com:lun1, portal: 104.245.33.142,3260] (m>11 tháng 7 07:24:19 initiator iscsiadm[3861]: Đăng nhập vào [iface: default, target: iqn.2020-07.example.com:lun1, portal: 104.245.33.142,3260] success>11 tháng 7 07:24:19 initiator systemd[1]: Hoàn tất Đăng nhập vào các mục tiêu iSCSI mặc định.
Mã:
iscsiadm -m session -o show
Mã:
tcp: [2] 192.168.1.10:3260,1 iqn.2020-07.example.com:lun1 (không phải flash)
Mã:
lsblk
Mã:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 80G 0 disk??sda1 8:1 0 80G 0 part /sdb 8:16 0 1000M 0 disk
Tạo Hệ thống Tệp trên Thiết bị Chia sẻ
Để sử dụng thiết bị được chia sẻ trên bộ khởi tạo iSCSI, bạn sẽ cần tạo một hệ thống tệp trên thiết bị được chia sẻ (sdb) và gắn kết nó để làm cho thiết bị này hữu ích.Trước tiên, hãy tạo một hệ thống tệp trên thiết bị được chia sẻ (sdb) bằng lệnh sau:
Mã:
fdisk /dev/sdb
Mã:
Chào mừng đến với fdisk (util-linux 2.34).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 0x9743ddcf.Lệnh (m để được trợ giúp): nKiểu 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 là p):Sử dụng phản hồi mặc định là p.Số phân vùng (1-4, mặc định là 1):Khu vực đầu tiên (2048-2047999, mặc định là 2048):Khu vực cuối cùng, +/-khu vực hoặc +/-kích thước{K,M,G,T,P} (2048-2047999, mặc định là 2047999):Đã tạo một phân vùng mới 1 loại 'Linux' và có kích thước 999 MiB.Lệnh (m để được trợ giúp): wBảng phân vùng đã được thay đổi.Đang gọi ioctl() để đọc lại bảng phân vùng.Đang đồng bộ hóa đĩa.
Mã:
mkfs.ext4 /dev/sdb1
Mã:
mke2fs 1.45.5 (07-01-2020)Tạo hệ thống tệp với 255744 khối 4k và 64000 inodeUUID hệ thống tệp: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3Sao lưu siêu khối được lưu trữ trên các khối: 32768, 98304, 163840, 229376Phân bổ bảng nhóm: xongGhi bảng inode: xongTạo nhật ký (4096 khối): xongGhi siêu khối và thông tin kế toán hệ thống tệp: xong
Mã:
mount /dev/sdb1 /mnt
Mã:
df -h
Mã:
Filesystem Size Used Avail Use% Mounted onudev 981M 0 981M 0% /devtmpfs 199M 588K 199M 1% /run/dev/sda1 79G 1.8G 74G 3% /tmpfs 994M 0 994M 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 994M 0 994M 0% /sys/fs/cgrouptmpfs 199M 0 199M 0% /run/user/0/dev/sdb1 968M 2.5M 899M 1% /mnt