之前介绍过网络文件共享系统NFS和CIFS。在系统中,设备也是可以共享的,这就是iSCSI,它可以用来建立和管理IP存储设备、主机和客户机等之间的相互连接。下文将简要介绍这种网络设备共享系统。
       1、安装

因为iSCSI是设备共享系统,所以在进行操作之间,需要先有一个硬盘设备。本文中是使用"fdisk /dev/vdb"来新建一个分区设备"/dev/vdb1"来作为共享设备。

"yum install targetcli -y"。服务端需要安装这个软件,来提供iSCSI服务。完成后关闭防火墙,开启服务并设置开机启动。

2、服务端配置

输入"targetcli"命令,进入下图界面,输入"ls"可以查看是否有配置。

现对共享设备"/dev/vdb1"进行配置,配置步骤如下所示:

a、"/backstores/block create we:storage1 /dev/vdb1"。建立一个基于"/dev/vdb1"的共享设备。

b、"/iscsi create iqn.2017-08.com.example:storage1"。建立一个"iscsi",名称为"iqn.2017-08.com.example:storage1",用于客户端连接。

c、"/iscsi/iqn.2017-08.com.example:storage1/tpg1/luns create /backstores/block/we:storage1"。将建立的"iscsi"与建立的共享设备"we:storage1"连接起来。

d、"/iscsi/iqn.2017-08.com.example:storage1/tpg1/acls create iqn.2017-08.com.example:storage1key"。生成一个加密密钥。

e、"/iscsi/iqn.2017-08.com.example:storage1/tpg1/portals create 172.25.254.202"。打开服务的端口。

完成后输入"exit"退出。服务端的配置就完成了。
       3、客户端配置
        在服务端配置完成后,就需要在客户端挂载这个设备,如若挂载成功,那么就实现了网络设备共享。在客户端还要做如下配置:

a、"yum install iscsi-initiator-utils.x86_64 -y"。这是客户端需要安装的软件。然后关闭防火墙,开启服务"iscsi"。

b、"vim /etc/iscsi/initiatorname.iscsi"。在这个文件中编写服务端中设置的加密密钥,输入"InitiatorName=iqn.2017-08.com.example:storage1key"。配置完成后需要"systemctl restart iscsi"重启服务。

c、"iscsiadm -m discovery -t -st -p 172.25.254.202"。查看"172.25.254.202"的主机即服务端共享了什么设备。

d、"iscsiadm -m node -T iqn.2017-08.com.example:storage1 -p 172.25.254.202 -l"。加载服务端共享的设备"iqn.2017-08.com.example:storage1"。

e、"fdisk -l"。可以看到设备里多了一个设备"/dev/sda"。

f、"fdisk /dev/sda"。对这个设备分区,完成后输入"mkfs.xfs /dev/sda1"来格式化设备。

上述步骤完成后,客户端就可以挂载这个设备"/dev/sda1"了。

4、共享设备的卸载与删除
       在共享设备使用完成后,为了不占用系统资源,需要对共享设备所做的配置进行删除。具体步骤如下所示:
       a、客户端的设备卸载
       "umount /mnt"。卸载挂载的共享设备。
       "iscsiadm -m node -T iqn.2017-08.com.example:storage1 -u"。卸载之前所加载的共享设备。

"iscsiadm -m node -T iqn.2017-08.com.example:storage1 -o delete"。删除这个共享设备。因为如果只是使用卸载命令,虽然使用"fdisk -l"看不到这个设备,但是如果重启"iscsi"服务,这个设备还会自动重新加载,所以需要删除这个设备。

b、服务端的配置删除
       "targetcli"。进入共享设备配置界面。

"clearconfig confirm=True"。输入此命令删除之前所做的所有设备共享配置。

完成客户端和服务端的步骤,网络共享设备"iSCSI"就被卸载与删除了。
       5、iSCSI与LVM
        之前的LVM篇中有过介绍,LVM适用于设备大小提前未知的情况,即可以扩大和压缩磁盘空间,其本质也是一个设备,所以也可以应用于iSCSI,使得共享设备在空间不够时可以实现空间扩大。

使用的方法和普通设备类似,先配置一个LVM设备"/dev/isvg/islv0"。

完成后按照上述iSCSI的服务端配置步骤对此设备进行共享配置。

服务端配置完成后,客户端的配置方式与普通设备相同,即对其进行查询,加载,完成后就可以通过"fdisk -l"看到这个设备"/dev/sda"了,大小为5364M。

但是在LVM的空间扩大中,服务端扩大空间后,客户端并不能自动刷新。如下图所示,将这个LVM设备扩大至"6000M",需要在客户端先输入命令"iscsiadm -m node -T iqn.2017-08.com.example:storage1 -u"卸载这个加载的设备,然后"systemctl restart iscsi"重启服务,重新使用"fdisk -l"就可以看到这个共享设备的空间成功扩大至6219M了。

linux初学者-iscsi篇的更多相关文章

  1. linux初学者-SElinux篇

    linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...

  2. linux初学者-firewall篇

     linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...

  3. linux初学者-mail篇

     linux初学者-mail篇 邮件是在生活中比较常用的一个工具,在linux系统中的邮件也是.在linux中,邮件的发送所用的服务时postfix,邮件的接收所用的服务是pop(110端口).ima ...

  4. linux初学者-iptables篇

     linux初学者-iptables篇 iptables是防火墙的一种,是用来设置.维护和检查linux内核的IP过滤规则的,可以完成封包过滤.封包重定向和网络地址转换(NAT)等功能. iptabl ...

  5. linux初学者-Apache篇

     linux初学者-Apache篇          Apache提供了超文本传输协议http,httpd是Apache超文本传输协议的主服务器.下文将对httpd的安装和配置进行简单的叙述.     ...

  6. linux初学者-ftp篇(一)

    linux初学者-ftp篇(一) FTP是文件传输协议,是用于Internet上的控制文件的双向传输.用户可以通过客户机程序从远程主机上下载或者向远程主机上传文件. linux系统中,如果不了解SEL ...

  7. linux初学者-磁盘阵列篇

    linux初学者-磁盘阵列篇 在磁盘的使用中,有时候需要提高磁盘的读写数据速度,就要用到磁盘组——raid,也就是磁盘阵列. 磁盘阵列是由最少两块以上的磁盘组成的,raid有许多模式,在这里将介绍其中 ...

  8. linux初学者-进程篇

    linux初学者-进程篇 不管是windows还是linux,都有进程,那么什么是进程呢?进程就是cpu未完成的工作.下面会介绍一些关于系统中进程的查看以及管理的方法. 1.命令 1.1.命令使用 查 ...

  9. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

随机推荐

  1. 如何开发优质的 Flutter App:应用架构的搭建

    各位读者朋友们,好久不见了! 最近博主一直在忙于工作以及写<Flutter入门与应用实战>的书,所以没有时间打理博客.今天来给大家分享一个博主在GitChat上发起的一场Chat. 下面是 ...

  2. F4帮助

    在INITIALIZATION之后添加 AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_month-low 事件,s_month-low为要添加的搜索帮助. 下面 ...

  3. 原生js封装轮播图

    个人实际开发中用到的效果问题总结出来便于自己以后开发查看调用,如果也适用其他人请随意拿走勿喷就行! 原生js对于思路要求比较高,在js代码我都写有备注,足够理解并使用,即使是小白或者刚入行的程序员也比 ...

  4. MAC电脑修改Terminal以及vim高亮显示

    1. Terminal高亮显示 编辑~/.bash_profile文件,在末尾增加两行: export CLICOLOR= export LSCOLORS=exfxcxdxcxegedabagacad ...

  5. python基础--定义装饰器(内置装饰器)

    装饰器的定义: 装饰器本质上就是一个python函数,它可以让其它函数在不需要做任何代码改动的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景中,比如-- >插入 ...

  6. Java NIO 学习笔记(一)----概述,Channel/Buffer

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  7. 如何使用JavaScript导入和导出Excel文件

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. JavaScript是一个涵盖多种框架.直译式.可以轻松自定义客户端的脚本 ...

  8. python多线程爬取图片实例

    今天试着把前面那个爬取图片的爬虫改成了多线程爬取,虽然最后可以爬取存储图片了,但仍存在一些问题.网址还是那个网址https://www.quanjing.com/category/1286521/1. ...

  9. Input标签中Type的类型及详细用法

    Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍.1,type=text输入类型是text,这是我们见的最多 ...

  10. JAVA 实现 GET、POST、PUT、DELETE HTTP请求

    1.get 2.put 3.post 4.delete