Tutorial

Hướng dẫn Cài Đặt Máy Chủ Lưu Trữ iSCSI trên Ubuntu 22.04

iscsi

Internet Small Computer System Interface (iSCSI) là một giao thức được sử dụng trong Mạng Lưu Trữ (SANs) cho việc chia sẻ tài nguyên lưu trữ theo dạng block như phân vùng Ổ Đĩa Cứng (HDDs) hoặc Ổ Đĩa Trạng Thái Rắn (SSDs), phân vùng Quản lý Khối Lượng Lôgic (LVM), hoặc tệp block qua mạng. Sử dụng kiến trúc máy khách-máy chủ, iSCSI hỗ trợ việc truyền các lệnh SCSI qua mạng TCP/IP giữa hai thành phần chính: Bộ khởi tạo và Bộ mục tiêu. Bộ mục tiêu iSCSI là một dịch vụ được lưu trữ trên máy chủ iSCSI, chịu trách nhiệm cấp quyền truy cập vào lưu trữ được chia sẻ. Trái lại, Bộ khởi tạo iSCSI hoạt động như máy khách, thiết lập kết nối đến mục tiêu để sử dụng tài nguyên lưu trữ được chia sẻ.


Hướng dẫn này là một hướng dẫn đầy đủ về thiết lập cả bộ mục tiêu và bộ khởi xướng iSCSI trên máy chủ chạy Ubuntu 22.04. Nó sẽ bao gồm các bước để thiết lập chia sẻ lưu trữ an toàn trong mạng của bạn.

Yêu Cầu
  • Một hệ thống chạy Ubuntu 22.04 cho mục tiêu iSCSI với Ổ Đĩa Cứng bên ngoài 1 GB.
  • Một hệ thống chạy Ubuntu 22.04 mới cho bộ khởi xướng iSCSI.
  • Một địa chỉ IP tĩnh 192.168.1.10 được cấu hình trên bộ mục tiêu iSCSI, và 192.168.1.20 được cấu hình trên khởi xướng iSCSI.
  • Một mật khẩu root đượ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, cập nhật hệ thống của bạn với các gói mới nhất là một ý tưởng tốt. Bạn có thể cập nhật chúng bằng lệnh sau:

apt update -y
apt upgrade -y

Sau khi tất cả các gói được cập nhật, khởi động lại hệ thống của bạn để áp dụng các thay đổi.

iscsi
Cài Đặt Mục Tiêu iSCSI


Gói Mục Tiêu iSCSI có sẵn trong kho mặc định của Ubuntu 22.04 theo mặc định. Bạn có thể cài đặt nó bằng cách chạy lệnh sau trên máy chủ Mục Tiêu iSCSI:

apt install tgt -y

Sau khi cài đặt Mục Tiêu iSCSI, kiểm tra trạng thái của máy chủ với lệnh sau:

systemctl status tgt

Bạn sẽ nhận được đầu ra sau:

? tgt.service - (i)SCSI target daemon
     Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2024-01-03 11:13:04 UTC; 23s ago
       Docs: man:tgtd(8)
   Main PID: 7770 (tgtd)
     Status: "Starting event loop..."
      Tasks: 1
     Memory: 1.1M
     CGroup: /system.slice/tgt.service
             ??7770 /usr/sbin/tgtd -f
Jan 03 11:13:04 ubuntu2204 systemd[1]: Starting (i)SCSI target daemon...
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jan 03 11:13:04 ubuntu2204 systemd[1]: Started (i)SCSI target daemon.

Tại thời điểm này, Mục Tiêu iSCSI đã được cài đặt trên máy chủ của bạn. Bạn có thể tiếp tục sang bước tiếp theo.

Cấu hình Mục Tiêu iSCSI


Đầu tiên, tạo một thiết bị LUN (Logical Unit Number – Số Đơn Vị Lôgic) trên máy chủ iSCSI của bạn. LUN là một thiết bị lưu trữ phía sau được kết nối với một thiết bị SCSI vật lý. Tất cả các LUN được ánh xạ tới Mục Tiêu iSCSI đều được gắn kết ảo với hệ điều hành của máy khách. Do đó, các Khởi xướng có thể thiết lập và quản lý hệ thống tệp trên các LUN iSCSI.
Bạn có thể cấu hình nó bằng cách tạo một tệp cấu hình mới:

nano /etc/tgt/conf.d/iscsi.conf

Thêm các dòng sau:

<target iqn.2024-01.example.com:lun1>
     backing-store /dev/sdb
     initiator-address 192.168.1.20
    incominguser iscsi-user password
     outgoinguser iscsi-target secretpass
</target>

Lưu và đóng tệp khi bạn hoàn tất.
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ủ Mục Tiêu iSCSI.
  • Dòng thứ ba định nghĩa địa chỉ IP của khởi xướng iSCSI.
  • 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 khởi xướng để cho phép xác thực CHAP lẫn nhau.
    Tiếp theo, khởi động lại dịch vụ iSCSI để áp dụng các thay đổi:
systemctl restart tgt

Sau đó, kiểm tra máy chủ Mục Tiêu iSCSI bằng lệnh sau:

tgtadm --mode target --op show

Bạn sẽ nhận được đầu ra sau:

Target 1: iqn.2024-01.example.com:lun1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
        iscsi-user
        iscsi-target (outgoing)
    ACL information:
        192.168.1.10

Tại thời điểm này, máy chủ mục tiêu iSCSI đã được cài đặt và cấu hình. Bây giờ bạn có thể tiến hành sang bước tiếp theo.

Cài Đặt và Cấu Hình Khởi Xướng iSCSI


Tiếp theo, chuyển đến máy khởi xướng iSCSI và cài đặt gói khởi xướng iSCSI bằng lệnh sau:

apt install open-iscsi -y

Sau khi quá trình cài đặt hoàn tất, phát hiện máy chủ mục tiêu iSCSI để tìm ra các mục tiêu được chia sẻ sử dụng lệnh sau:

iscsiadm -m discovery -t st -p 192.168.1.10

Bạn nên thấy đầu ra sau:

192.168.1.10:3260,1 iqn.2024-01.example.com:lun1

Tiếp theo, bạn cần định nghĩa tên của thiết bị LUN trong tệp initiatorname.iscsi:

nano /etc/iscsi/initiatorname.iscsi

Thêm tên LUN mục tiêu iSCSI của bạn như sau:

InitiatorName=iqn.2024-01.example.com:lun1

Lưu và đóng tệp khi bạn đã hoàn tất.
Tiếp theo, bạn cần định nghĩa thông tin CHAP mà bạn đã cấu hình trên mục tiêu iSCSI để truy cập vào mục tiêu iSCSI từ khởi xướng 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 có sẵn.
Bạn có thể định nghĩa nó bằng cách chỉnh sửa tệp sau:

nano /etc/iscsi/nodes/iqn.2024-01.example.com\:lun1/192.168.1.10\,3260\,1/default

Thêm/Chỉnh sửa các dòng sau:

node.session.auth.authmethod = CHAP  
node.session.auth.username = iscsi-user
node.session.auth.password = password          
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass         
node.startup = automatic

Lưu và đóng tệp sau đó khởi động lại dịch vụ khởi xướng iSCSI với lệnh sau:

systemctl restart open-iscsi iscsid

Bạn cũng có thể kiểm tra trạng thái của dịch vụ bằng lệnh sau:

systemctl status open-iscsi

Bạn sẽ nhận được đầu ra sau:

? open-iscsi.service - Login to default iSCSI targets
     Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sat 2024-01-03 11:33:13 UTC; 10s ago
       Docs: man:iscsiadm(8)
             man:iscsid(8)
    Process: 2861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
    Process: 2867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
   Main PID: 2867 (code=exited, status=0/SUCCESS)

Bạn cũng có thể xác minh kết nối iSCSI với lệnh sau:

iscsiadm -m session -o show

Bạn sẽ nhận được đầu ra sau:

tcp: [2] 192.168.1.10:3260,1 iqn.2024-01.example.com:lun1 (non-flash)

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:

lsblk

Bạn sẽ thấy thiết bị chia sẻ sdb trong đầu ra sau:


NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      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ị chia sẻ trên máy khởi xướng iSCSI, bạn cần tạo một hệ thống tệp trên thiết bị chia sẻ (sdb) và gắn kết nó để thiết bị này trở nên hữu ích.
Đầu tiên, tạo một hệ thống tệp trên thiết bị chia sẻ (sdb) bằng lệnh sau:

fdisk /dev/sdb

Trả lời tất cả các câu hỏi như dưới đây để tạo một hệ thống tệp:

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9743ddcf.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-2047999, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2047999, default 2047999): 

Created a new partition 1 of type 'Linux' and of size 999 MiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.


Tiếp theo, định dạng phân vùng bằng lệnh sau:

mkfs.ext4 /dev/sdb1

Bạn nên nhận được đầu ra sau:


mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 255744 4k blocks and 64000 inodes
Filesystem UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done


Tiếp theo, gắn kết phân vùng vào thư mục /mnt bằng lệnh sau:

mount /dev/sdb1 /mnt

Bây giờ bạn có thể xác minh phân vùng đã gắn kết bằng lệnh sau:

df -h

Bạn nên nhận được đầu ra sau:

Filesystem      Size  Used Avail Use% Mounted on
udev            972M     0  981M   0% /dev
tmpfs           199M  528K  199M   1% /run
/dev/sda1        79G  1.8G   74G   3% /
tmpfs           994M     0  994M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           994M     0  994M   0% /sys/fs/cgroup
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1       968M  2.5M  899M   1% /mnt
Kết luận


Hướng dẫn trên đã hướng dẫn bạn cách thiết lập một mục tiêu và khởi xướng iSCSI trên máy chủ Ubuntu 22.04. Bạn cũng đã học được cách chia sẻ một thiết bị trên máy chủ Mục Tiêu và truy cập nó từ máy khởi xướng.

https://congdonglinux.com/huong-dan-cai-dat-vtiger-crm/
Tags

Add Comment

Click here to post a comment