🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

一、基础概念

为什么需要iSCSI?

二、环境准备

硬件需求

网络要求

三、配置iSCSI目标端(Target)

1. 安装iSCSI服务端软件

2. 启动并启用target服务

3. 配置iSCSI目标

4. 配置防火墙

四、配置iSCSI发起端(Initiator)

1. 安装iSCSI客户端软件

2. 配置iSCSI发起器名称

3. 启动iSCSI服务

4. 发现iSCSI目标

5. 登录到iSCSI目标

6. 验证连接

7. 格式化和挂载iSCSI设备

五、高级配置

1. 使用TSIG密钥进行安全认证(可选但推荐)

2. 配置多路径(Multipath)

六、验证与测试

1. 测试iSCSI连接

2. 创建测试文件

3. 检查文件系统

七、常见问题排查

八、实际应用场景

九、小贴士


一、基础概念

iSCSI(Internet Small Computer System Interface)是一种基于TCP/IP协议的网络存储标准,它允许在IP网络上运行SCSI命令,从而实现远程存储设备的访问。简单来说,iSCSI可以将远程存储设备像本地磁盘一样使用。

为什么需要iSCSI?

  • 成本效益:使用现有以太网基础设施,无需额外投资专用存储网络
  • 灵活性:易于扩展,可以根据需求动态增加或减少存储容量
  • 高可用性:为集群环境提供共享存储,提高系统可靠性
  • 应用场景:虚拟化环境、数据库集群、数据备份等

二、环境准备

硬件需求

  • iSCSI目标端(Target):提供存储资源的服务器(如192.168.1.100)
  • iSCSI发起端(Initiator):需要访问存储的客户端(如192.168.1.101)
  • 存储设备:可以是物理磁盘或逻辑卷(如/dev/sdb)

网络要求

  • 目标端和发起端在同一网络或能互相通信
  • 确保防火墙放行3260端口(iSCSI默认端口)

三、配置iSCSI目标端(Target)

1. 安装iSCSI服务端软件

# CentOS/RHEL系统
sudo yum install targetcli -y

# Ubuntu/Debian系统
sudo apt-get install targetcli -y

2. 启动并启用target服务

sudo systemctl start target
sudo systemctl enable target

3. 配置iSCSI目标

sudo targetcli

在targetcli命令行界面中执行以下操作:

# 创建后端存储块(使用物理磁盘)
/ > /backstores/block create name=mydisk dev=/dev/sdb

# 创建iSCSI目标
/ > /iscsi create iqn.2023-09.com.example:mytarget

# 将后端存储与目标关联
/ > /iscsi/iqn.2023-09.com.example:mytarget/tpg1/luns create /backstores/block/mydisk

# 配置访问控制列表(ACL)
/ > /iscsi/iqn.2023-09.com.example:mytarget/tpg1/acls create iqn.1994-05.com.redhat:client1

# 设置监听IP和端口(默认已配置)
/ > /iscsi/iqn.2023-09.com.example:mytarget/tpg1/portal delete 0.0.0.0:3260
/ > /iscsi/iqn.2023-09.com.example:mytarget/tpg1/portal create 192.168.1.100:3260

# 退出并保存配置
/ > exit

4. 配置防火墙

# CentOS/RHEL
sudo firewall-cmd --permanent --add-port=3260/tcp
sudo firewall-cmd --reload

# Ubuntu/Debian
sudo ufw allow 3260/tcp

四、配置iSCSI发起端(Initiator)

1. 安装iSCSI客户端软件

# CentOS/RHEL系统
sudo yum install iscsi-initiator-utils -y

# Ubuntu/Debian系统
sudo apt-get install open-iscsi -y

2. 配置iSCSI发起器名称

sudo vi /etc/iscsi/initiatorname.iscsi

修改为:

InitiatorName=iqn.1994-05.com.redhat:client1

3. 启动iSCSI服务

sudo systemctl start iscsid
sudo systemctl enable iscsid

4. 发现iSCSI目标

sudo iscsiadm -m discovery -t st -p 192.168.1.100

5. 登录到iSCSI目标

sudo iscsiadm -m node -T iqn.2023-09.com.example:mytarget -p 192.168.1.100 -l

6. 验证连接

# 查看已登录的iSCSI设备
iscsiadm -m session

# 查看新发现的磁盘
lsblk

7. 格式化和挂载iSCSI设备

# 格式化(如果需要)
sudo mkfs.ext4 /dev/sdb

# 创建挂载点并挂载
sudo mkdir /mnt/iscsi
sudo mount /dev/sdb /mnt/iscsi

# 设置开机自动挂载(编辑/etc/fstab)
echo "/dev/sdb /mnt/iscsi ext4 defaults,_netdev 0 0" | sudo tee -a /etc/fstab

五、高级配置

1. 使用TSIG密钥进行安全认证(可选但推荐)

# 生成密钥
sudo dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST iscsi-sync

# 获取密钥内容
sudo cat /etc/bind/keys/iscsi-sync.key

在目标端和发起端的配置文件中添加密钥信息,实现安全同步。

2. 配置多路径(Multipath)

# 安装多路径软件包
sudo yum install device-mapper-multipath -y

# 配置多路径
sudo vi /etc/multipath.conf

添加以下内容:

defaults {
    user_friendly_names yes
    path_grouping_policy group_by_prio
    path_selector "round-robin 0"
    path_checker "tur"
    prio "alua"
    rr_weight "uniform"
    failback immediate
    no_path_retry 10
}

重启多路径服务:

sudo systemctl restart multipathd

六、验证与测试

1. 测试iSCSI连接

# 在发起端执行
sudo iscsiadm -m node -T iqn.2023-09.com.example:mytarget -p 192.168.1.100 -u
sudo iscsiadm -m node -T iqn.2023-09.com.example:mytarget -p 192.168.1.100 -l

2. 创建测试文件

# 在挂载点创建测试文件
sudo touch /mnt/iscsi/testfile
sudo ls /mnt/iscsi

3. 检查文件系统

df -h /mnt/iscsi

七、常见问题排查

  1. 无法发现iSCSI目标

    • 检查网络连接是否通畅
    • 确认防火墙是否放行3260端口
    • 确认iSCSI服务是否在目标端运行
  2. 登录失败

    • 检查iSCSI IQN名称是否正确
    • 确认ACL配置中是否包含客户端IQN
    • 检查目标端的配置是否正确
  3. 挂载失败

    • 确认设备名称正确(如/dev/sdb)
    • 检查文件系统是否已格式化
    • 确认在fstab中使用了_netdev选项

八、实际应用场景

假设你有两台服务器组成集群:

  • 服务器A(192.168.1.100):iSCSI目标端
  • 服务器B(192.168.1.101):iSCSI发起端

你希望为服务器B提供100GB的共享存储,用于数据库集群。通过iSCSI部署,服务器B可以将远程存储作为本地磁盘使用,实现数据共享和高可用。

九、小贴士

  1. Serial号:每次修改区域文件后,必须增加Serial号,否则同步不会触发
  2. 性能优化:使用高速网络,确保iSCSI网络与常规网络隔离
  3. 安全建议:使用CHAP或TSIG进行认证,避免未授权访问
  4. 监控:使用iscsiadm -m session定期检查连接状态

希望这份教程对你有帮助!配置完成后,你的服务器将能轻松实现网络存储共享,大大提升系统灵活性和可靠性。😊

如果你在配置过程中遇到问题,可以告诉我你的具体环境(Linux发行版、网络拓扑),我会给你针对性的建议。需要我帮你检查配置吗?

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐