【UOS运维学习笔记】- ISCSI网络存储

一、关于网络存储

网络存储技术(Network Storage Technologies) 网络存储技术是基于数据存储的一种通用网络术语。
1、网络存储结构大致分为三种:
直连式存储(DAS:Direct Attached Storage)
网络连接式存储(NAS:Network Attached Storage)
存储网络(SAN:Storage Area Network)
2、NAS 与 SAN 的区别
NAS 有文件操作和管理系统,而 SAN 却没有
SAN 主要是高速信息存储,NAS 偏重文件共享。
SAN 和 NAS 相比不具有资源共享的特征
SAN 是只能独享的数据存储池,NAS 是共享与独享兼顾的数据存储池。
NAS 是网络外挂式,而 SAN 是通道外挂式。
SAN 高效可扩,NAS 简单灵活
NAS 的代表-CIFS、NFS
SAN 的代表 iSCSI、FCP
Internet 小型计算机系统接口(iSCSI:Internet Small Computer System Interface)。
iSCSI 技术是一种由 IBM 公司研究开发的,是一个供硬件设备使用的可以在 IP 协议的上层运行的 SCSI 指令集,这种指令集合可以实现在 IP 网络上运行 SCSI 协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI 技术是一种新储存技术,该技术是将现有 SCSI 接口与以太网络(Ethernet)技术结合,使服务器可与使用 IP 网络的储存装置互相交换资料。
iSCSI 是一种基于 TCP/IP 的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。
SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装SCSI 命令,且运行在 TCP 上。
早期的企业使用的服务器若有大容量磁盘的需求时,通常是透过 SCSI 来串接 SCSI 磁盘,因此服务器上面必须要加装 SCSI 卡,而且这个 SCSI 是专属于该服务器的。后来这个外接式的 SCSI设备被 SAN 的架构所取代,在 SAN 的标准架构下,虽然有很多的服务器可以对同一个 SAN 进行存取的动作,不过为了速度需求,通常使用的是光纤通道。但是光纤通道很贵,不但设备贵,服务器上面也要有光纤卡,很麻烦,所以光纤的 SAN 在中小企业很难普及。
随着网络技术的发展,尤其是以 IP 封包为基础的 LAN 技术已经很成熟,再加上以太网路的速度越来越快,所以就有厂商将 SAN 的连接方式改为利用 IP 技术来处理。然后再透过一些标准的设定,最后就得到 Internet SCSI (iSCSI)这个的产生!iSCSI 主要是透过 TCP/IP 的技术,将储存设备端透过 iSCSI target (iSCSI 目标端)功能,做成可以提供磁盘的服务器端,再透过 iSCSIinitiator (iSCSI 初始化用户)功能,做成能够挂载使用 iSCSI target 的用户端,如此便能透过iSCSI 设置来进行磁盘的应用了。
3、iSCSI 技术优点和成本优势
硬件成本低:构建 iSCSI 存储网络,除了存储设备外,交换机、线缆、接口卡都是标准的以太网配件,价格相对来说比较低廉。同时,iSCSI 还可以在现有的网络上直接安装,并不需要更改企业的网络体系,这样可以最大程度地节约投入。
操作简单,维护方便:对 iSCSI 存储网络的管理,实际上就是对以太网设备的管理,只需花费少量的资金去培训 iSCSI 存储网络管理员。当 iSCSI 存储网络出现故障时,问题定位及解决也会因为以太网的普及而变得容易。
扩充性强:对于已经构建的 iSCSI 存储网络来说,增加 iSCSI 存储设备和服务器都将变得简单且无需改变网络的体系结构。
带宽和性能:iSCSI 存储网络的访问带宽依赖以太网带宽。随着千兆以太网的普及和万兆以太网的应用,iSCSI 存储网络会达到甚至超过 FC(FiberChannel,光纤通道)存储网络的带宽和性能。
突破距离限制:iSCSI 存储网络使用的是以太网,因而在服务器和存储设备的空间布局上的限制就会少了很多,甚至可以跨越地区和国家。
4、ISCSI 的架构组成
SCSI 使用 Client/Server 模型。Initiator 为应用客户端,而 Target 包括设备 服务器端和队列管理两部分。
ISCSI 的储存设备称为 iSCSITarget(或称 iSCSI Target Device),例如 iSCSI 磁盘阵列柜、iSCSI磁带柜等。
ISCSI 卡称为 ISCSI HBA(Host Bus Adapter)。ISCSI 允许使用一般 Ethernet NIC 卡,若使用一般 GbE 卡,则还需要搭配软件才能让 GbE 卡收发 ISCSI 协议,此软件称为 ISCSI Initiator,事实上 ISCSI HBA 的角色也等同于 ISCSI Initiator。
概念
TPG: 共享存储组,某个特定 iSCSI 目标要侦听的接口 IP 地址和 TCP 端口的集合。可以将目标配置添加到 TPG 以协调多个 LUN 的设置。
ACL: 访问权限控制列表,一种使用节点 IQN(通常是启动器名称)来验证启动器的访问权限的访问限制
IQN: iSCSI 限定名称,全球唯一名称,用于以强制命名格式来识别启动器和目标。
IQN 格式如下:
iqn.YYYY-MM.com.reversed.domain[:optionalstring]
iqn:表示此名称使用域为标识符。
YYYY-MM:表示拥有域名的年月时间。
com.reversed.domain:拥有此 iSCSI 组织的逆向域名
:optionalstring:以冒号为前缀的可选字符串,全球唯一,由域所有者分配,其中可包含冒号为分割符的组织边界
LUN: 逻辑单元号,带有编号的块设备,连接到目标且通过目标来使用。可以有一个或多个LUN 连接到单个目标,但通常一个目标提供一个 LUN
portals 入口: 目标或启动器上用于建立的 IP 地址和端口。 3260

二、iscsi 的配置

1、实验-磁盘方式 iscsi
(1)添加硬盘
在 uos1 上操作
新添加一块儿硬盘/dev/sdb
分出 sdb1 分区
fdisk -l
fdisk /dev/sdb
n p 1 回车 +10G w

(2)安装
apt install -y targetcli-fb
(3)快速创建 targetcli
targetcli 是 Linux-IO Target 的用户态的管理配置工具。用户可以使用 yum 或 apt-get 直接从各 大发行版的官方仓库安装,对于较老的 linux 版本需要自己编译源码安装。targetcli 提供一个 类似 shell 的界面,各种 Target、TPG、LUN、backstore 对象则被组织成目录树的形式,用户 可以用 ls、cd 命令来浏览目录树,用 create、delete 命令来创建和删除各种对象。浏览配置, 就是浏览目录树,创建删除各种对象,就是在目录树的各级节点中创建新的节点。同时 targetcli 还提供了常见的 shell 命令辅助编辑功能,例如 TAB 智能补全、上下键切换命令历史、 Ctrl + R 搜索命令历史。凡是有不熟悉的命令,都可以用 help 命令查询使用说明。 targetcli #进入交互界面
步骤 1:建立一个块存储 注意:名称 smydisk 可自定义),/dev/sdb1 为上面新建的分区名称。
backstores/block create mydisk /dev/sdb1
步骤 2:配置 ISCSITarget 命名 注意:命名在同一子网内确保是唯一的,命名格式为:iqn.yyyy-mm.<主机名反写>:自定义名 称(自定义名称内不能有下划线) iscsi create iqn.2020-06.com.uos-uos
步骤 3:创建 ACL 允许 ISCSI 客户机连接 注意:iqn.2020-06.com.uos-client 为客户机 ISCSI 名称。
iscsi/iqn.2020-06.com.uos-uos/tpg1/acls create iqn.2020-06.com.uos-client
步骤 4:创建 lun(target 块设备的逻辑单元)
iscsi/iqn.2020-06.com.uos:uos1/tpg1/luns create /backstores/block/mydisk
步骤 5:保存退出
saveconfig exit 查看端口
netstat -antup | grep 3260 tcp 0 0 0.0.0.0:3260 0.0.0.0: LISTEN -

在 uos2 上操作
步骤 1:安装 open-iscsi
apt-get install open-iscsi
启动 iscsi 服务
systemctl restart iscsi
systemctl start iscsid

设置开机启动服务
systemctl enable iscsid
步骤 2:配置 ISCSIInitiator 名称
注:此处 InitiatorName 必须与服务端配置的 ACL 允许 ISCSI 客户机连接的名称一致。
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1993-08.org.debian:01:e7ae330e87d
InitiatorName=iqn.2020-06.com.uos-client

步骤 3:发现 iSCSI 存储
man iscsiadm #搜索 example 查看示例语法
mode 有:discovery、node、session、iface。一般就用前两个 mode。
discovery:发现某服务器是否有 target 输出,以及输出了哪些 target。发现 target后会生成 target 数据库 discoverydb。
type:有三种 type(sendtargets,SLP,iSNS),一般只会用到 sendtargets
portal:指定要发现 target 的 IP 和端口,不指定端口时使用默认的 3260
iscsiadm –mode discoverydb –type sendtargets –portal 192.168.200.201 –discover
步骤 4:连接 ISCSI 设备
node:管理跟某 target 的关联关系。在 discovery 发现了 target 后,是否要跟 target建立关系,是否要删除已有的关系或者解除已有的关系等。删除关联关系不仅会解除关联,还会删除发现 target 后生成的 discoverydb。
iscsiadm --mode node --targetname iqn.2020-04.com.uos-uos --portal 192.168.200.201:3260 --login
查看系统磁盘信息
fdisk -l
步骤 5:设置在开机后自动登录 Target。
用 vi 编辑配置文件
vim /etc/iscsi/iscsi.conf
node.startup = automatic 去掉前面的注释符
node.startup = manual 在前面加上注释符#

步骤 6:设置开机挂载网络磁盘
fdisk /dev/sdb #分出/dev/sdb1
mkfs.ext4 /dev/sdb1
mkdir /mnt/mydisk1 #创建挂在目录
blkid /dev/sdb1 #查询 uuid
vim /etc/fstab

UUID=5d70249d-e305-4d9e-821e-3378938fad35 /mydisk1 ext4 defaults,_netdev 0 0
不加_netdev 开机会卡住,当我们挂载网络存储设备时由于/dev/sdb 是一块网络存储设备,而 iSCSI 协议是基于 TCP/IP 网络传输数据的,因此必须在/etc/fstab 配置文件中添加上_netdev 参数,表示当系统联网后再进行挂载操作,以免系统开机时间过长或开机失败。
reboot #重启自动挂载

2、实验-文件方式 iscsi
在 uos1 上操作
dd if=/dev/zero of=/iscsifile bs=1M count=2048 #创建空洞文件
targetcli #进入交互界面
backstores/fileio create mydisk2 /iscsifile
iscsi/ create iqn.2020-04.com.uosfile
iscsi/iqn.2020-04.com.uosfile/tpg1/acls create iqn.2020-04.com.uosfile:client
iscsi/iqn.2020-04.com.uosfile/tpg1/luns create /backstores/fileio/mydisk2
saveconfig
exit

在 uos2 上操作
vim /etc/iscsi/initiatorname.iscsi #配置 ISCSIInitiator 名称
InitiatorName=iqn.2020-04.com.uos-client
InitiatorName=iqn.2020-04.com.uosfile:client
vim /etc/iscsi/iscsid.conf
node.session.timeo.replacement_timeout = 5 #修改,链路重试 5 秒不能连接则宣告断开
systemctl restart iscsi
systemctl restart iscsid #重启服务
systemctl enable iscsid
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.200.201 --discover
iscsiadm --mode node --name iqn.2020-06.com.uosfile --portal 192.168.200.201:3260 --login

设置在开机后自动登录 Target
用 vi 编辑配置文件
vim /etc/iscsi/iscsi.conf
node.startup = automatic 去掉前面的注释符
node.startup = manual 在前面加上注释符#

fdisk -l #发现/dev/sdc
fdisk /dev/sdc #分区/dev/sdc1
mkfs.ext4 /dev/sdc1
mkdir /mnt/mydisk2
blkid #找出/dev/sdc1 的 UUID
vim /etc/fstab

UUID=”c56a71c0-d17c-4ff2-80f6-8be43b1663ea” /mnt/mydisk2 ext4 defaults,_netdev 0 0
reboot #重启自动挂载
iscsiadm -m session -P[123] #查看 iscsi 信息,,大写 P,session:会话管理。

3、实验-iscsi 开关顺序
关机顺序
uos2 先关 uos1 再关
开机顺序
uos1 先开 uos2 再开
4、实验-iscsi 的删除
在 uos2 上
卸载挂载
umount /mnt/mydisk1
umount /mnt/mydisk2

vim /etc/fstab #删除 fstab 相关内容
-d:指定 debug 级别,有 0-8 个级别。
-L 和-U:分别是登录和登出 target,可以指定 ALL 表示所有发现的 target,或者 manual 指定。
-l 和-u:分别是登录和登出某一个 target。
-T:用于-l 或-u 时指定要登录和登出的 targetname。
-o:对 discoverydb 做某些操作,可用的操作有 new/delete/update/show,一般只会用到
delete 和 show。
iscsiadm --mode node --name iqn.2020-06.com.uosfile:client --portal 192.168.200.201:3260 --logout
iscsiadm --mode node --name iqn.2020-06.com.uosfile --portal 192.168.200.201:3260 --logout
iscsiadm -m node -T iqn.2020-06.com.uosfile:client -p 192.168.200.201-o delete
iscsiadm -m node -T iqn.2020-06.com.uosfile -p 192.168.200.201 -o delete
fdisk -l #已经看不到/dev/sdb1 和/dev/sdc1 了
或者
vim /etc/iscsi/iscsid.conf

node.startup = manual #修改,今后将不会自动挂载

关于软件资源类分享的免责声明:
本站为个人博客非盈利性站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并未做任何贩卖软件信息等行为,不存在任何商业目的及用途。
根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。"
您需知晓本站所有分享内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任。
如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇