网络共享虚拟硬盘 :iscsi

来源:互联网 发布:网络出版物的图书 编辑:程序博客网 时间:2024/06/05 18:31

(一)基础知识

DAS,NAS和SAN都代表什么意思?   直接连接存储(Direct Attached Storage,简称DAS),是通常放置在服务器机箱内部的驱动器,通常是SCSI连接。DAS驱动器也可以放置在外部机箱内,但是通过有限长度的SCSI电缆进行连接的。   网络连接存储(Network Attached Storage,简称NAS)是单独连接到局域网上的设备,但是仅仅提供基于文件的存储。简单地说,NAS机器是专用的文件服务器,但是它没有运行应用程序的能力,而是分配它们所有的资源,用来文件共享。有时也称为“Filers”。    存储区域网络(Storage Area Network ,简称SAN)通常用来指专用的**硬盘存储阵列**,通过光纤通道链路连接到不少主机上,这个光纤通道来自一个光纤通道交换机,该交换机可为所有的设备提供高速“Hub”功能。

(二)iscsi的概念

    虚拟磁盘就是在本地电脑里面虚拟出一个远程电脑里面的磁盘。感觉像是在本机上的硬盘一样。其实他没在本机上。    网络虚拟磁盘iSISC可以加大网吧客户机硬盘容量,高速安全稳定.iSCSI Cake主要用于网吧共享硬盘服务。     客户端可以通过局域网连接服务器上的iSCSI Cake服务器,在本地虚拟出一块硬盘,以达到通过网络共享服务器硬盘的效果。网吧业主只需要在服务器上的iSCSI Cake里添加目录和安装游戏软件,客户端的本地虚拟硬盘里就有了相应的游戏软件,不需要到每台机器进行安装。    iSCSI( Internet Small Computer System Interface 互联网小型计算机系统接口)是由IBM 下属的两大研发机构一一加利福尼亚AImaden和以色列Haifa研究中心共同开发的,是一个供硬件设备使用的、可在IP协议上层运行的SCSI指令集,是一种开放的基于IP协议的工业技术标准。该协议可以用TCP/IP对SCSI指令进行封装,使得这些指令能够通过基于P网络进行传输,从而实现SCSI 和TCP/IP协议的连接。对于局域网环境中的用户来说,采用该标准只需要不多的投资就可以方便、快捷地对信息和数据进行交互式传输及管理。

(三)iscsi的优势
在使用iscsi时,比NFS更加节省资源,时间,过程
图解iscsi:
这里写图片描述

(四)iscsi的配置
1)在server服务端上,先建立lvm设备(动态分配空间):

root@server ~]# fdisk /dev/vda Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition tableBuilding a new DOS disklabel with disk identifier 0x60505aa3.Command (m for help): pDisk /dev/vda: 8589 MB, 8589934592 bytes, 16777216 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x60505aa3   Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): Using default response pPartition number (1-4, default 1): First sector (2048-16777215, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215): +500MPartition 1 of type Linux and of size 500 MiB is setCommand (m for help): pDisk /dev/vda: 8589 MB, 8589934592 bytes, 16777216 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x60505aa3   Device Boot      Start         End      Blocks   Id  System/dev/vda1            2048     1026047      512000   83  LinuxCommand (m for help): tSelected partition 1Hex code (type L to list all codes): 8eChanged type of partition 'Linux' to 'Linux LVM'Command (m for help): pDisk /dev/vda: 8589 MB, 8589934592 bytes, 16777216 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x60505aa3   Device Boot      Start         End      Blocks   Id  System/dev/vda1            2048     1026047      512000   8e  Linux LVMCommand (m for help): wqThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@server ~]# partprobe [root@server ~]# pvcreate /dev/vda1  Physical volume "/dev/vda1" successfully created[root@server ~]# vgcreate iscsi_vg /dev/vda1  Volume group "iscsi_vg" successfully created[root@server ~]# vgdisplay   --- Volume group ---  VG Name               iscsi_vg  System ID               Format                lvm2  Metadata Areas        1  Metadata Sequence No  1  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                0  Open LV               0  Max PV                0  Cur PV                1  Act PV                1  VG Size               496.00 MiB  PE Size               4.00 MiB  Total PE              124  Alloc PE / Size       0 / 0     Free  PE / Size       124 / 496.00 MiB  VG UUID               AtkgEm-L3sg-EkWu-zNof-kurk-7ykw-AWv5nG[root@server ~]# lvcreate -l 124 -n iscsi_lv0 iscsi_vg  Logical volume "iscsi_lv0" created.[root@server ~]# lvdisplay   --- Logical volume ---  LV Path                /dev/iscsi_vg/iscsi_lv0  LV Name                iscsi_lv0  VG Name                iscsi_vg  LV UUID                odU0t7-bbVS-JJfS-WHX7-kRXN-dQP1-rI376c  LV Write Access        read/write  LV Creation host, time server, 2017-12-12 21:34:14 +0800  LV Status              available  # open                 0  LV Size                496.00 MiB  Current LE             124  Segments               1  Allocation             inherit  Read ahead sectors     auto  - currently set to     8192  Block device           252:0

2 安装软件:

yum install targetcli.noarch ##安装iSCSI目标软件包systemctl enable target.service ##开启target服务

在火墙上开启端口:

这里写图片描述

3 开启服务:

这里写图片描述

4进入iSCSI目标交互式配置模式

[root@server ~]# targetcli       ##进入iSCSI目标交互式配置模式Warning: Could not load preferences file /root/.targetcli/prefs.bin.targetcli shell version 2.1.fb34Copyright 2011-2013 by Datera, Inc and others.For help on commands, type 'help'./> lso- / ....................................................... [...]  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 server1storage /dev/vg0/iscsi_storage   ##和逻辑卷建立联系,把/dev/vg0/iscsi_storage用server1storage表示Created block storage object server1storage using /dev/vg0/iscsi_storage./> /iscsi create iqn.2017-12.com.example:strage1        ##创建iqn服务的名称(每个发起端和目标需要唯一名称进行标识)Created target iqn.2017-12.com.example:strage1.Created TPG 1./> lso- / ....................................................... [...]  o- backstores ............................................ [...]  | o- block ................................ [Storage Objects: 1]  | | o- server1storage  [/dev/vg0/iscsi_storage (996.0MiB) write-thru deactivated]  | o- fileio ............................... [Storage Objects: 0]  | o- pscsi ................................ [Storage Objects: 0]  | o- ramdisk .............................. [Storage Objects: 0]  o- iscsi .......................................... [Targets: 1]  | o- iqn.2017-12.com.example:strage1 ................. [TPGs: 1]  |   o- tpg1 ............................. [no-gen-acls, no-auth]  |     o- acls ........................................ [ACLs: 0]  |     o- luns ........................................ [LUNs: 0]  |     o- portals .................................. [Portals: 0]  o- loopback ....................................... [Targets: 0]/> /iscsi/iqn.2017-12.com.example:strage1/tpg1/luns create /backstores/block/server1storage         ##加密(默认情况下,网络通信是至iSCSI目标上的端口3260/tcp的明文)Created LUN 0./> /iscsi/iqn.2017-12.com.example:strage1/tpg1/acls create iqn.2017-12.com.example:server1storagekeyCreated Node ACL for iqn.2017-12.com.example:server1storagekeyCreated mapped LUN 0./> /iscsi/iqn.2017-12.com.example:strage1/tpg1/portals create 172.25.254.138Using default IP port 3260Created network portal 172.25.254.138:3260./> exitGlobal pref auto_save_on_exit=trueLast 10 configs saved in /etc/target/backup.Configuration saved to /etc/target/saveconfig.json

这时在服务端就设置完成了。
5 我们在客户端设置:
安装软件:
1)
这里写图片描述

2)vim /etc/iscsi/initiatorname.iscsi  ##进入配置文件InitiatorName=iqn.2017-12.com.example:server1storagekey ##钥匙systemctl restart iscsi ##重启服务iscsiadm -m discovery -t st -p 172.25.254.138 ##识别查询设备iscsiadm -m node -T iqn.2017-12.com.example:strage1 -p 172.25.254.138 -l ##远程连接存储块mkfs.xfs /dev/sda   ##格式化硬盘mount /dev/sda /mnt/   ##挂载硬盘,进行远程存储。

这时我们就可以当作自己的硬盘使用了。我们可以在挂载目录里创建文件。
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

6实现自动化挂载:
在客户端:

vim /etc/fstab10 UUID=2da90fa4-582e-4c16-863a-bd6d83587e8f /mnt xfs defaults,_netdev  0  0   ##尽量使用uuid挂载,因为在每次开机时,这个服务会发生漂移!!。

注意:一定是先启动网络再挂载。

7 删除iscsi设备:
1)在服务端:

[root@server ~]# targetcli targetcli shell version 2.1.fb34Copyright 2011-2013 by Datera, Inc and others.For help on commands, type 'help'./> clearconfig confirm=True  ##确定删除。All configuration cleared/> exitGlobal pref auto_save_on_exit=trueLast 10 configs saved in /etc/target/backup.Configuration saved to /etc/target/saveconfig.json2)在客户端:

在客户端删除:
iscsiadm -m node -T iqn.2017-12.com.example:strage1 -p 172.25.254.138 -u      ##退出iSCSI目标,以暂时断开连接。
iscsiadm -m node -T iqn.2017-12.com.example:strage1 -p 172.25.254.138 -o delete     ##删除iSCSI目标的本地记录,以永久断开连接。

原创粉丝点击