第228集:网络存储配置
教学目标
- 理解网络存储的基本概念和主要类型
- 掌握iSCSI存储的配置和管理方法
- 了解Fibre Channel存储的架构和配置
- 学习FCoE和iSER等新兴网络存储技术
- 掌握网络存储的性能优化策略
- 学习网络存储的故障排查技巧
核心知识点讲解
1. 网络存储概述
网络存储是通过网络将存储设备与服务器连接的存储解决方案,它提供了集中管理、高可扩展性和灵活部署的优势。
主要类型:
- iSCSI (Internet Small Computer System Interface):基于TCP/IP网络的存储协议,将SCSI命令封装在IP数据包中传输
- Fibre Channel (FC):专门为存储设计的高速网络技术,提供低延迟、高带宽的存储连接
- FCoE (Fibre Channel over Ethernet):在以太网网络上传输Fibre Channel协议
- iSER (iSCSI Extensions for RDMA):利用RDMA技术提高iSCSI性能
- NFS/CIFS:基于文件级的网络存储(详见第227集:分布式文件系统)
2. iSCSI存储配置
2.1 iSCSI架构
- iSCSI Initiator:发起iSCSI连接的客户端,通常是服务器
- iSCSI Target:提供存储资源的服务器,管理LUN(逻辑单元号)
- LUN:逻辑存储单元,对客户端呈现为物理磁盘
- **iSCSI Qualified Name (IQN)**:用于标识iSCSI节点的唯一名称
2.2 iSCSI Target配置
在存储服务器上配置iSCSI Target:
- 安装iSCSI Target软件
# 在CentOS/RHEL系统上
sudo yum install targetcli
# 在Ubuntu/Debian系统上
sudo apt install targetcli-fb- 配置iSCSI Target
# 启动targetcli
sudo targetcli
# 创建后端存储(使用LVM卷作为示例)
targetcli> /backstores/block create name=disk1 dev=/dev/vg_data/lv_iscsi
# 创建iSCSI Target
targetcli> /iscsi create iqn.2023-07.com.example:target1
# 创建LUN
targetcli> /iscsi/iqn.2023-07.com.example:target1/tpg1/luns create /backstores/block/disk1
# 配置访问控制(允许特定Initiator访问)
targetcli> /iscsi/iqn.2023-07.com.example:target1/tpg1/acls create iqn.2023-07.com.example:initiator1
# 配置IP地址和端口
targetcli> /iscsi/iqn.2023-07.com.example:target1/tpg1/portals create 192.168.1.100
# 保存配置
targetcli> saveconfig
# 退出
targetcli> exit- 启动和启用服务
# 在CentOS/RHEL系统上
sudo systemctl start target
sudo systemctl enable target
# 在Ubuntu/Debian系统上
sudo systemctl start targetcli-fb
sudo systemctl enable targetcli-fb2.3 iSCSI Initiator配置
在客户端服务器上配置iSCSI Initiator:
- 安装iSCSI Initiator软件
# 在CentOS/RHEL系统上
sudo yum install iscsi-initiator-utils
# 在Ubuntu/Debian系统上
sudo apt install open-iscsi- 配置Initiator名称
编辑/etc/iscsi/initiatorname.iscsi文件:
sudo vi /etc/iscsi/initiatorname.iscsi添加以下内容:
InitiatorName=iqn.2023-07.com.example:initiator1- 发现和登录Target
# 发现Target
sudo iscsiadm -m discovery -t st -p 192.168.1.100
# 登录Target
sudo iscsiadm -m node -T iqn.2023-07.com.example:target1 -p 192.168.1.100 --login
# 设置自动登录
sudo iscsiadm -m node -T iqn.2023-07.com.example:target1 -p 192.168.1.100 --op update -n node.startup -v automatic- 验证连接
# 查看已连接的iSCSI设备
sudo lsblk
# 查看iSCSI会话
sudo iscsiadm -m session- 格式化和挂载
# 格式化iSCSI设备
sudo mkfs.xfs /dev/sdb
# 创建挂载点
sudo mkdir /mnt/iscsi
# 挂载设备
sudo mount /dev/sdb /mnt/iscsi
# 配置持久化挂载
# 编辑/etc/fstab文件,添加以下行
UUID=$(sudo blkid -s UUID -o value /dev/sdb) /mnt/iscsi xfs defaults,_netdev 0 03. Fibre Channel存储配置
3.1 Fibre Channel架构
- HBA (Host Bus Adapter):主机总线适配器,连接服务器和FC网络
- FC Switch:光纤通道交换机,连接多个HBA和存储设备
- Storage Array:存储阵列,提供FC存储服务
- WWN (World Wide Name):用于标识FC设备的唯一标识符
3.2 Fibre Channel配置
- 安装HBA驱动
# 查看HBA卡信息
sudo lspci | grep -i fibre
# 安装驱动(以QLogic HBA为例)
sudo yum install kmod-qla2xxx # CentOS/RHEL
sudo apt install qlogic-fc-firmware # Ubuntu/Debian- 配置HBA卡
# 查看HBA卡状态
sudo systool -c fc_host -v
# 查看WWN信息
sudo cat /sys/class/fc_host/host*/port_name- ** zoning配置**
Zoning是FC网络中的访问控制机制,限制HBA和存储端口之间的通信。
配置方法:
- 通过FC交换机的Web界面配置
- 使用交换机命令行工具配置
- 使用 zoning管理软件配置
- 发现和配置LUN
# 重新扫描FC设备
sudo echo "- - -" > /sys/class/scsi_host/host0/scan
# 查看发现的设备
sudo lsblk
# 格式化和挂载(同iSCSI)4. FCoE和iSER配置
4.1 FCoE配置
FCoE需要支持DCB (Data Center Bridging)的以太网交换机和NIC卡。
- 安装FCoE软件
# 在CentOS/RHEL系统上
sudo yum install fcoe-utils
# 在Ubuntu/Debian系统上
sudo apt install fcoe-utils- 配置FCoE
# 查看支持FCoE的接口
sudo fcoeadm -l
# 启用FCoE
sudo fcoeadm -i eth0
# 查看FCoE状态
sudo fcoeadm -s4.2 iSER配置
iSER需要支持RDMA的网络设备(如InfiniBand或RoCE网卡)。
- 安装iSER软件
# 在CentOS/RHEL系统上
sudo yum install iser-module
# 在Ubuntu/Debian系统上
sudo apt install ibverbs-providers- 配置iSER
# 加载iSER模块
sudo modprobe iser
# 配置iSCSI使用iSER
sudo iscsiadm -m node -T iqn.2023-07.com.example:target1 -p 192.168.1.100 --op update -n node.transport_name -v iser
# 重新登录
sudo iscsiadm -m node -T iqn.2023-07.com.example:target1 -p 192.168.1.100 --logout
sudo iscsiadm -m node -T iqn.2023-07.com.example:target1 -p 192.168.1.100 --login5. 网络存储性能优化
优化策略:
网络优化:
- 使用高速网络(10GbE或更高)
- 配置适当的MTU(如9000字节的巨型帧)
- 启用流量控制和QoS
- 分离存储网络和业务网络
iSCSI优化:
- 使用多路径I/O (MPIO)提高可靠性和性能
- 调整iSCSI队列深度
- 启用iSER或使用FCoE
- 优化TCP参数
Fibre Channel优化:
- 合理规划zoning
- 使用适当的HBA队列深度
- 配置适当的带宽分配
- 定期检查和清理FC交换机
存储阵列优化:
- 合理分配LUN
- 启用缓存
- 配置适当的RAID级别
- 定期维护和监控
6. 网络存储故障排查
常见故障及解决方法:
连接问题:
- 检查物理连接(线缆、接口)
- 检查网络配置(IP地址、子网掩码、网关)
- 检查防火墙设置
- 检查iSCSI/Fibre Channel服务状态
性能问题:
- 监控网络带宽使用情况
- 检查存储阵列负载
- 分析I/O模式
- 调整队列深度和缓存设置
LUN识别问题:
- 重新扫描SCSI总线
- 检查zoning配置
- 验证LUN映射
- 检查权限设置
多路径问题:
- 检查多路径配置
- 验证路径状态
- 测试故障转移
实用案例分析
案例1:配置iSCSI存储服务器
场景:构建一个iSCSI存储服务器,为多台应用服务器提供共享存储。
配置步骤:
- 安装和配置targetcli
# 安装targetcli
sudo yum install targetcli
# 启动服务
sudo systemctl start target
sudo systemctl enable target
# 配置iSCSI Target
sudo targetcli
# 创建存储池(使用LVM)
targetcli> /backstores/block create name=storage1 dev=/dev/vg_storage/lv_iscsi
# 创建iSCSI Target
targetcli> /iscsi create iqn.2023-07.com.example:storage
# 创建LUN
targetcli> /iscsi/iqn.2023-07.com.example:storage/tpg1/luns create /backstores/block/storage1
# 配置访问控制(允许所有Initiator)
targetcli> /iscsi/iqn.2023-07.com.example:storage/tpg1/acls create iqn.2023-07.com.example:initiator1
targetcli> /iscsi/iqn.2023-07.com.example:storage/tpg1/acls create iqn.2023-07.com.example:initiator2
# 配置端口
targetcli> /iscsi/iqn.2023-07.com.example:storage/tpg1/portals create 192.168.1.100
# 保存配置
targetcli> saveconfig
targetcli> exit- 客户端配置
在两台应用服务器上执行以下操作:
# 安装initiator软件
sudo yum install iscsi-initiator-utils
# 配置Initiator名称(服务器1)
sudo echo "InitiatorName=iqn.2023-07.com.example:initiator1" > /etc/iscsi/initiatorname.iscsi
# 配置Initiator名称(服务器2)
sudo echo "InitiatorName=iqn.2023-07.com.example:initiator2" > /etc/iscsi/initiatorname.iscsi
# 重启服务
sudo systemctl restart iscsid
# 发现和登录Target
sudo iscsiadm -m discovery -t st -p 192.168.1.100
sudo iscsiadm -m node -T iqn.2023-07.com.example:storage -p 192.168.1.100 --login
# 设置自动登录
sudo iscsiadm -m node -T iqn.2023-07.com.example:storage -p 192.168.1.100 --op update -n node.startup -v automatic- 测试存储
# 在服务器1上创建测试文件
sudo dd if=/dev/zero of=/mnt/iscsi/test1.img bs=1G count=10
# 在服务器2上验证文件存在
sudo ls -l /mnt/iscsi/案例2:配置多路径I/O (MPIO)
场景:为iSCSI存储配置多路径,提高可靠性和性能。
配置步骤:
- 安装多路径软件
# 安装multipath-tools
sudo yum install device-mapper-multipath # CentOS/RHEL
sudo apt install multipath-tools # Ubuntu/Debian
# 启用多路径服务
sudo systemctl start multipathd
sudo systemctl enable multipathd- 配置多路径
编辑/etc/multipath.conf文件:
sudo vi /etc/multipath.conf添加以下内容:
defaults {
user_friendly_names yes
find_multipaths yes
}
blacklist {
devnode "^sda.*"
}
multipaths {
multipath {
wwid "360014058a5b6c7d8e9f0a1b2c3d4e5f6"
alias iscsi_storage
}
}- 重新加载配置
sudo multipath -v2
# 查看多路径状态
sudo multipath -ll
# 查看多路径设备
sudo ls -l /dev/mapper/- 使用多路径设备
# 格式化多路径设备
sudo mkfs.xfs /dev/mapper/iscsi_storage
# 挂载设备
sudo mount /dev/mapper/iscsi_storage /mnt/iscsi
# 配置持久化挂载
# 编辑/etc/fstab文件,添加以下行
/dev/mapper/iscsi_storage /mnt/iscsi xfs defaults,_netdev 0 0课后练习
- 基础练习
- 配置iSCSI Target服务器,创建LUN并授权给客户端
- 在客户端发现和登录iSCSI Target,格式化并挂载
- 配置多路径I/O,测试故障转移功能
- 进阶练习
- 构建一个包含多个LUN的iSCSI存储服务器,为不同应用提供隔离存储
- 配置iSER,测试性能提升
- 实现iSCSI存储的快照功能
- 挑战练习
- 设计并实现一个基于Fibre Channel的存储网络
- 配置FCoE网络,实现以太网和存储网络的融合
- 构建一个混合存储环境,同时使用iSCSI和Fibre Channel存储
总结
网络存储是现代数据中心的重要组成部分,它提供了灵活、可扩展的存储解决方案。本集介绍了网络存储的基本概念和主要类型,详细讲解了iSCSI、Fibre Channel、FCoE和iSER等网络存储技术的配置和管理方法,以及网络存储的性能优化和故障排查技巧。
选择合适的网络存储技术需要考虑多种因素,包括性能需求、预算限制、现有基础设施等。iSCSI是一种经济实惠的选择,适用于大多数通用存储场景;Fibre Channel提供更高的性能和可靠性,适用于对存储性能要求较高的场景;FCoE和iSER则是兼顾性能和成本的折中方案。
通过本集的学习,您应该能够理解网络存储的工作原理,掌握iSCSI等网络存储技术的配置和管理方法,并能够根据实际需求选择和部署适合的网络存储解决方案。