iSCSI 服务器搭建
一、简介
- SCSI(Small Computer System Interface),小型计算机系统接口,是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。SCSI 标准定义命令、通信协议以及实体的电气特性(换成 OSI 的说法,就是占据物理层、链接层、套接层、应用层),最大部分的应用是在存储设备上(例如硬盘、磁带机),除外,SCSI 可以连接的设备包括有扫描仪、光学设备(像 CD、DVD)、打印机等等,SCSI 命令中有条列出支持的设备 SCSI 周边设备。理论上,SCSI 不可能连接所有的设备,所以有“1Fh - unknown or no device type”这个参数存在
- iSCSI(Internet Small Computer System Interface,发音为
/ˈаɪskʌzi/),Internet 小型计算机系统接口,又称为 IP-SAN,是一种基于因特网及 SCSI-3 协议下的存储技术,由 IETF 提出,并于 2003 年 2 月 11 日成为正式的标准。与传统的 SCSI 技术比较起来,iSCSI 技术有以下三个革命性的变化:- 把原来只用于本机的 SCSI 协议透过 TCP/IP 网络发送,使连接距离可作无限的地域延伸
- 连接的服务器数量无限(原来的 SCSI-3 的上限是 15)
- 由于是服务器架构,因此也可以实现在线扩容以至动态部署
- 个人理解:
- iscsi 的存储单元表现为硬盘的形式(网络硬盘)
- SMB 和 NFS 服务是基于文件系统的数据共享,而 iscsi 基于整体的存储块,要使用该存储单元需要客户端通过 TCP/IP 协议远程连接,并映射为本地磁盘
二、服务端配置
1. 准备存储空间
- 硬盘形式:VMware 中编辑虚拟机设置,添加一块硬盘(
/dev/sdb)
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk # 新添加的硬盘
sr0 11:0 1 4.4G 0 rom
$
- 文件形式:
dd申请空间
$ dd if=/dev/zero of=/opt/disk.img bs=1024k count=512
记录了512+0 的读入
记录了512+0 的写出
536870912字节(537 MB)已复制,2.49767 秒,215 MB/秒
$ ls -lh /opt/
总用量 512M
-rw-r--r--. 1 root root 512M 9月 27 09:45 disk.img
2. 安装 iscsi 服务端
$ yum install targetd targetcli -y
# 创建iscsi磁盘
$ targetcli
targetcli shell version 2.1.53
/> ls
o- / ................................................................................... [...]
o- backstores ........................................................................ [...]
| o- block ............................................................ [Storage Objects: 0] # 存放硬盘
| o- fileio ........................................................... [Storage Objects: 0] # 存放文件
| o- pscsi ............................................................ [Storage Objects: 0]
| o- ramdisk .......................................................... [Storage Objects: 0]
o- iscsi ...................................................................... [Targets: 0]
o- loopback ................................................................... [Targets: 0]
/> /backstores/block create idisk1 /dev/sdb
Created block storage object idisk1 using /dev/sdb.
/> /backstores/fileio create idisk2 /opt/disk.img
Created fileio idisk2 with size 536870912
/> ls
o- / ................................................................................... [...]
o- backstores ........................................................................ [...]
| o- block ............................................................ [Storage Objects: 1]
| | o- idisk1 ................................... [/dev/sdb (1.0GiB) write-thru deactivated]
| | o- alua ............................................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
| o- fileio ........................................................... [Storage Objects: 1]
| | o- idisk2 ............................ [/opt/disk.img (512.0MiB) write-back deactivated]
| | o- alua ............................................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
| o- pscsi ............................................................ [Storage Objects: 0]
| o- ramdisk .......................................................... [Storage Objects: 0]
o- iscsi ...................................................................... [Targets: 0]
o- loopback ................................................................... [Targets: 0]
# 创建服务端程序
/> /iscsi create iqn.2021-09.pip.cc:server
Created target iqn.2021-09.pip.cc:server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/> ls
o- / ................................................................................... [...]
o- backstores ........................................................................ [...]
| o- block ............................................................ [Storage Objects: 1]
| | o- idisk1 ................................... [/dev/sdb (1.0GiB) write-thru deactivated]
| | o- alua ............................................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
| o- fileio ........................................................... [Storage Objects: 1]
| | o- idisk2 ............................ [/opt/disk.img (512.0MiB) write-back deactivated]
| | o- alua ............................................................. [ALUA Groups: 1]
| | o- default_tg_pt_gp ................................. [ALUA state: Active/optimized]
| o- pscsi ............................................................ [Storage Objects: 0]
| o- ramdisk .......................................................... [Storage Objects: 0]
o- iscsi ...................................................................... [Targets: 1]
| o- iqn.2021-09.pip.cc:server ................................................... [TPGs: 1]
| o- tpg1 ......................................................... [no-gen-acls, no-auth]
| o- acls .................................................................... [ACLs: 0] # 创建客户端连接器
| o- luns .................................................................... [LUNs: 0] # 创建服务卷
| o- portals .............................................................. [Portals: 1]
| o- 0.0.0.0:3260 ............................................................... [OK]
o- loopback ................................................................... [Targets: 0]
# 创建服务卷:磁盘做成服务卷才能被客户端识别
/> cd /iscsi/iqn.2021-09.pip.cc:server/tpg1/
/iscsi/iqn.20...c:server/tpg1> luns/ create /backstores/block/idisk1
Created LUN 0.
/iscsi/iqn.20...c:server/tpg1> luns/ create /backstores/fileio/idisk2
Created LUN 1.
/iscsi/iqn.20...c:server/tpg1> ls
o- tpg1 ............................................................... [no-gen-acls, no-auth]
o- acls .......................................................................... [ACLs: 0]
o- luns .......................................................................... [LUNs: 2]
| o- lun0 ..................................... [block/idisk1 (/dev/sdb) (default_tg_pt_gp)]
| o- lun1 ............................... [fileio/idisk2 (/opt/disk.img) (default_tg_pt_gp)]
o- portals .................................................................... [Portals: 1]
o- 0.0.0.0:3260 ..................................................................... [OK]
# 创建客户端连接器(启用chap认证:验证客户端身份)
/iscsi/iqn.20...c:server/tpg1> acls/ create iqn.2021-09.pip.cc:client
Created Node ACL for iqn.2021-09.pip.cc:client
Created mapped LUN 1.
Created mapped LUN 0.
/iscsi/iqn.20...c:server/tpg1> cd acls/iqn.2021-09.pip.cc:client/
/iscsi/iqn.20...pip.cc:client> set auth userid=test
Parameter userid is now 'test'.
/iscsi/iqn.20...pip.cc:client> set auth password=112233445566 # 密码要在[12,16]范围内
Parameter password is now '112233445566'.
/iscsi/iqn.20...pip.cc:client> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json
# 启动targetd服务
$ systemctl restart targetd
$ systemctl enable targetd
Created symlink from /etc/systemd/system/multi-user.target.wants/targetd.service to /usr/lib/systemd/system/targetd.service.
$ ss -anpt | grep 3260
LISTEN 0 256 *:3260 *:*
三、客户端配置
1. Linux 客户端
# 安装客户端程序 iscsi-initiator-utils
$ yum -y install iscsi-initiator-utils
$ ls /etc/iscsi/
initiatorname.iscsi iscsid.conf
$ vi /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2021-09.pip.cc:client # 定义客户端连接器名称
$ vi /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP # 启用chap认证
node.session.auth.username = test
node.session.auth.password = 112233445566
# 启动iscsid服务
$ systemctl restart iscsid
$ systemctl enable iscsid
# 发现存储服务器
$ iscsiadm -m discovery -t st -p 192.168.11.60
192.168.11.60:3260,1 iqn.2021-09.pip.cc:server
# 登录存储服务器
$ iscsiadm -m node -T iqn.2021-09.pip.cc:server -p 192.168.11.60 --login
Logging in to [iface: default, target: iqn.2021-09.pip.cc:server, portal: 192.168.11.60,3260] (multiple)
Login to [iface: default, target: iqn.2021-09.pip.cc:server, portal: 192.168.11.60,3260] successful.
# 使用
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm
sdb 8:16 0 1G 0 disk # *
sdc 8:32 0 512M 0 disk # *
sr0 11:0 1 4.4G 0 rom
2. Windows 客户端
- 打开:
控制面板 / 所有控制面板项 / 管理工具 / iSCSI 发起程序
配置:

连接方式一:

连接方式二:

配置卷:

iSCSI 服务器搭建的更多相关文章
- CentOS iSCSI服务器搭建------Target篇
先上服务器信息(当然是我YY的服务器.哈哈) [root@node ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@node ...
- CentOS iSCSI服务器搭建------Initiator篇
服务器信息: [root@initiator ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@initiator ~]# un ...
- CentOS iSCSI服务器搭建------LUN篇
先上服务器信息(你懂得) [root@node ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@node ~]# uname ...
- Git本地服务器搭建及使用详解
Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- 版本控制-svn服务器搭建和常用命令(centos 6.3)
Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...
- 版本控制-Git服务器搭建和常用命令使用
Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...
- JAVA服务器搭建之问题总结
负责维护公司产品的web服务器搭建与维护,最近遇到一下状况,今天在这里简单总结一下,希望对于刚刚一些刚入行的小伙伴有所帮助,避免再走弯路. 第一点:Tomcat内存设置: 一.常见的Java内存溢出有 ...
- 烂泥:Postfix邮件服务器搭建之虚拟用户配置
virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...
随机推荐
- NOIP 模拟 $13\; \text{玄学题}$
题解 题如其名,是挺玄学的. 我们发现每个值是 \(-1\) 还是 \(1\) 只与它的次数是奇是偶有关,而 \(\sum_j^{j\le m}d(i×j)\) 又只与其中有多少个奇数有关 对于 \( ...
- VirtualBox-虚拟硬盘扩容-win7
问题: 我在VirtualBox下搭建的win7系统只设置了一个C盘,当初只给硬盘分配32G,如今深受生活的毒打,发现只剩5G可用,装个PS都费劲. 我要扩容,扩容! 当前环境: VirtualBox ...
- AECC2018同时中英文切换多开使用,加倍提高你的工作效率
最近相信不少人已经更新了AECC2018,升级之后第一件重要的事当然是中英文的切换了,要不然工作中很麻烦.对于一直习惯用中文的人来说,在用模板过程中会出现各种表达式报错极其不方便,而对于习惯英文操作朋 ...
- uwp之图片旋转动画实现
参考网址:https://blog.csdn.net/hzw2945/article/details/72467820 https://www.cnblogs.com/changbaishan/p/3 ...
- The Programmer's Oath程序员的誓言----鲍勃·马丁大叔(Bob Martin)
In order to defend and preserve the honor of the profession of computer programmers, I Promise that, ...
- 辗转相除 求最大公约数!or 最小公倍数
求最大公约数和最小公倍数的经典算法--辗转相除法描述如下: 若要求a,b两数的最大公约数和最小公倍数,令a为a.b中较大数,b为较小数,算法进一步流程: while(b不为0) { temp=a%b: ...
- 笔记本Linux系统,修改合盖不待机
最近买了一个新笔记本,所以就把老的笔记本当作服务器使用了.但是一盒笔记本的盖子就会待机,真的是麻烦.操作如下可以解决问题: 1.编辑 logind.conf 文件,命令如下 vi /etc/syste ...
- 经典深度学习CNN总结 - LeNet、AlexNet、GoogLeNet、VGG、ResNet
参考了: https://www.cnblogs.com/52machinelearning/p/5821591.html https://blog.csdn.net/qq_24695385/arti ...
- MySQL5.7 高可用高性能配置调优
[client]default-character-set = utf8mb4[mysqld]### 基本属性配置port = 3306datadir=/data/mysql# 禁用主机名解析skip ...
- Python之requests模块-cookie
cookie并不陌生,与session一样,能够让http请求前后保持状态.与session不同之处,在于cookie数据仅保存于客户端.requests也提供了相应到方法去处理cookie. 在py ...