iscsi 网络存储

1.数据量大 工作量大 会把数据保存在存储服务器上

2.数据的安全性没有办法保证 如果电脑故障 则数据丢失

3.当服务器出现问题需要维修 在维修期间无法读取数据

概念

网络存储:以数据为中心 将存储设备和服务器分开 集中管理数据 提高性能 保证数据的安全性

DAS:直接附加存储 存储设备和服务直接相连 通过接口连接

NAS:nfs/samba /ftp存储,以挂载的形式在网络中,将文件服务器的目录和服务器进行挂载

SAN存储区域网络: 通过 硬盘的 scsi接口和 scsi协议,来实现把磁盘进行远程挂载。

存储设备:磁盘、分区、raid、逻辑卷

iscsi服务

C/S架构,服务端:target 客户端:initiator

对于iSCSI来说他的服务端是安装了target,用来存储数据的,而客户端是运行web等服务的服务器,用来挂载磁盘

存储设备 标签

客户端通过网络发现target

iscsi部署搭建共享磁盘分区

实验环境

服务端:192.168.1.1

客户端:192.168.1.4

实验目的

客户端通过iscsi服务,获取服务端共享的存储设备的空间

实验步骤

为服务端添加一块硬盘,用作实验验证是挂载的硬盘,并重启初始化硬盘

第一步

192.168.1.1

确认target服务是否安装

[root@localhost ~]# rpm -qa | grep target
selinux-policy-targeted-3.13.1-192.el7.noarch
targetcli-2.1.fb46-1.el7.noarch
# 如未安装,执行yum -y install target*

第二步

对刚添加的硬盘进行分区

[root@localhost ~]# fdisk /dev/sdb 
# 这里我做了3个主分区,每个2G,并更改分区类型为LVM

第三步

启动target服务

[root@localhost ~]# systemctl start target
[root@localhost ~]# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.

第四步

进入targetcli中进行块设备与分区的操作

[root@localhost ~]# targetcli
/> ls
o- / .................................................................................. [...]
  o- backstores .............................................. [...]  # 指定添加的存储设备类型
  | o- block .................................. [Storage Objects: 0]  # 块数据/磁盘分区/逻辑卷
  | o- fileio ................................. [Storage Objects: 0]  # 虚拟磁盘
  | o- pscsi .................................. [Storage Objects: 0]  # 物理的scsi HBA
  | o- ramdisk ................................ [Storage Objects: 0]  # 内存盘
  o- iscsi ............................................ [Targets: 0]  # 网络存储
  o- loopback ......................................... [Targets: 0]

将块分区添加到target中

/> backstores/block create disk /dev/sdb1   # 使用/dev/sdb1做共享存储,并命名为disk
Created block storage object disk using /dev/sdb1.

/> iscsi/ create iqn.2020-01.com.server.www:disk   # 创建服务端的iscsi共享名为iqn.2020-01.com.server.www:disk
# 这里的命名要遵循iscsi命名规则,iqn命名规则
# iqn.yyyy-mm.反向域名:自定义标识  其中yyyy-mm是日期格式
Created target iqn.2020-01.com.server.www:disk.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
# 配置acl,只允许客户端名为iqn.2020-01.com.client.www:client1访问共享存储设备
/> iscsi/iqn.2020-01.com.server.www:disk/tpg1/acls create iqn.2020-01.com.client.www:client1
Created Node ACL for iqn.2020-01.com.client.www:client1
# 绑定块分区和共享的存储设备,客户端在访问iqn时会访问该存储设备的空间
/> iscsi/iqn.2020-01.com.server.www:disk/tpg1/luns create /backstores/block/disk 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2020-01.com.client.www:client1
# 删除默认监听3260端口
/> iscsi/iqn.2020-01.com.server.www:disk/tpg1/portals/ delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
# 添加监听本地的端口
/> iscsi/iqn.2020-01.com.server.www:disk/tpg1/portals create 192.168.1.1 3260
Using default IP port 3260
Created network portal 192.168.1.1:3260.
# 保存配置
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
# 退出
/> exit

第五步

配置iscsi客户端(192.168.1.4)

[root@localhost ~]# rpm -qa | grep iscsi   # 确认是否安装了iscsi
libiscsi-1.9.0-7.el7.x86_64
iscsi-initiator-utils-6.2.0.874-7.el7.x86_64
iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64
libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7.x86_64
# 如未安装,执行yum -y install iscsi*

编辑客户端的iSCSI的标签文件

[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi
修改为:
InitiatorName=iqn.2020-01.com.client.www:client1
# 这里等于号后面的是在服务器端的acl列表中的

启动iscsi服务

[root@localhost ~]# systemctl restart iscsid
[root@localhost ~]# systemctl enable iscsid
Created symlink from /etc/systemd/system/multi-user.target.wants/iscsid.service to /usr/lib/systemd/system/iscsid.service.

客户端发现服务端中的共享设备名

[root@localhost ~]# iscsiadm -m discovery -p 192.168.1.1 -t sendtargets
192.168.1.1:3260,1 iqn.2020-01.com.server.www:disk
-m:模式  discovery:查找/发现
-p:服务端的ip和端口
-t:类型 sendtargets:将在服务端查找到的发送给客户端

访问服务端的存储设备

[root@localhost ~]# iscsiadm -m node -T iqn.2020-01.com.server.www:disk -l
Logging in to [iface: default, target: iqn.2020-01.com.server.www:disk, portal: 192.168.1.1,3260] (multiple)
Login to [iface: default, target: iqn.2020-01.com.server.www:disk, portal: 192.168.1.1,3260] successful.
node:节点
-T:指定连接的目标
-l:登入连接的目标
-u:登出连接的目标
--op:操作  update:更新  create:创建   delete:删除
-n:指定名字,设定开启自启连接需要使用
-v update搭配使用,设置开机自启连接需要使用

在客户端验证查看是否获取到了服务端共享设备的空间

[root@localhost ~]# fdisk -l
# 最下方的/dev/sdb就是获取到的服务端共享设备
磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00001ffd

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048     5220351     2097152   82  Linux swap / Solaris
/dev/sda3         5220352   104857599    49818624   83  Linux

磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 4194304 字节

从上面可以看出,无论服务端的共享设备是lvm还是其他的,在客户端的体现都是把接收到的空间当作一块硬盘来使用的

[root@localhost ~]# iscsiadm -m node -T iqn.2020-01.com.server.www:disk --op update -n node.startup -v automatic
# 自动连接,需要首次连接成功

共享逻辑卷

实验环境

服务端:192.168.1.1

客户端:192.168.1.6

实验目的

客户端通过iscsi服务,获取服务端共享的逻辑卷存储设备的空间

实验步骤

在服务端共享磁盘分区的时候做了三个分区,上个实验只用了一个,剩余两个就是为了逻辑卷准备的,所以现在开始使用,把它们做逻辑卷

192.168.1.1

# 创建物理卷
[root@localhost ~]# pvcreate /dev/sdb2 /dev/sdb3
  Physical volume "/dev/sdb2" successfully created.
  Physical volume "/dev/sdb3" successfully created.
# 创建卷组
[root@localhost ~]# vgcreate cyj /dev/sdb{2,3} -s 16M
  Volume group "cyj" successfully created
# 创建逻辑卷
[root@localhost ~]# lvcreate -L 1G -n pjf cyj
  Logical volume "pjf" created.

进入targetcli进行块分区与逻辑卷的操作

# 使用逻辑卷/dev/mapper/cyj-pjf作共享存储设备,并命名为lvm
/> backstores/block/ create lvm /dev/mapper/cyj-pjf
Created block storage object lvm using /dev/mapper/cyj-pjf.
# 创建服务端的iscsi共享名为iqn.2020-01.com.server.www:lvm
/> iscsi/ create iqn.2020-01.com.server.www:lvm
Created target iqn.2020-01.com.server.www:lvm.
Created TPG 1.
Default portal not created, TPGs within a target cannot share ip:port.
# 配置acl,只有存在列表中的客户端可以获取到共享存储设备的空间
/> iscsi/iqn.2020-01.com.server.www:lvm/tpg1/acls create iqn.2020-01.com.client.www:client2
Created Node ACL for iqn.2020-01.com.client.www:client2
# 将共享名与共享存储设备绑定,客户端能访问到共享名就能获取共享存储设备的空间
/> iscsi/iqn.2020-01.com.server.www:lvm/tpg1/luns create /backstores/block/lvm 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2020-01.com.client.www:client2
# 添加本地监听端口
/> iscsi/iqn.2020-01.com.server.www:lvm/tpg1/portals create 192.168.1.1 3260
Using default IP port 3260
Created network portal 192.168.1.1:3260.
# 保存配置
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
/> exit

配置iscsi客户端(192.168.1.6)

[root@localhost ~]# rpm -qa | grep iscsi   # 确认是否安装了iscsi
libiscsi-1.9.0-7.el7.x86_64
iscsi-initiator-utils-6.2.0.874-7.el7.x86_64
iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64
libvirt-daemon-driver-storage-iscsi-3.9.0-14.el7.x86_64
# 如未安装,执行yum -y install iscsi*

编辑客户端的iSCSI的标签文件

[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi
修改为:
InitiatorName=iqn.2020-01.com.client.www:client2
# name为acl中存在的指定名

启动iscsi服务

[root@localhost ~]# systemctl restart iscsid
[root@localhost ~]# systemctl enable iscsid
Created symlink from /etc/systemd/system/multi-user.target.wants/iscsid.service to /usr/lib/systemd/system/iscsid.service.

客户端发现服务端共享名

[root@localhost ~]# iscsiadm -m discovery -p 192.168.1.1:3260 -t sendtargets
192.168.1.1:3260,1 iqn.2020-01.com.server.www:disk   # 磁盘分区共享
192.168.1.1:3260,1 iqn.2020-01.com.server.www:lvm    # 逻辑卷共享

访问并获取服务端的共享存储设备空间

[root@localhost ~]# iscsiadm -m node -T iqn.2020-01.com.server.www:lvm -l
Logging in to [iface: default, target: iqn.2020-01.com.server.www:lvm, portal: 192.168.1.1,3260] (multiple)
Login to [iface: default, target: iqn.2020-01.com.server.www:lvm, portal: 192.168.1.1,3260] successful.

查看是否获取成功

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f05ef

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM

磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 4194304 字节
# /dev/sdb   1073也就是1G,获取成功,同样即使共享的是逻辑卷,也会按照一块磁盘来显示

挂载使用(网络硬盘自动挂载都必须加_netdev)

# 要么创建目录,手动mount
# 要么创建目录,自动挂载/etc/fstab
vim /etc/fstab
挂载磁盘    挂载目录    文件系统
/dev/sdb1 /mnt/sdb1      xfs     defaults,_netdev    0 0

raid 磁盘冗余阵列知识点

特点:

提高磁盘容量,提高硬盘读写,保证数据的安全

分类:

硬件的raid:磁盘阵列卡(lvm)

软件的raid:常用的raid0/raid1/raid5/raid0+1/raid1+0

raid0:最少需要两块硬盘,只是单独的提高读写效率,但是不安全,同时写入,同时读取

raid1(镜像卷):最少需要两块硬盘,相当于把数据复制一份,保证数据的安全性,两块硬盘数据一样,不会提高读写效率,空间利用率50%,当一块磁盘损坏,才会自动使用另一块

raid5:最少需要三块硬盘,校验机制(奇偶校验),提高了读写效率,有容错机制,当一块硬盘坏掉,不影响整个数据,但是不能同时坏两块

raid1+0:最少需要四块硬盘,四块做两个raid1(镜像卷),再将两个raid1做成一个raid0,既提高读写效率,又能保证数据的安全,每个raid1允许在坏一块磁盘的情况下保证数据依旧可以读写

raid0+1:最少需要四块硬盘,四块做两个raid0,再将两个raid0做成一个raid1,既提高读写效率,又能保证数据的安全,也就是两个raid0中的数据是一样的,允许其中一个raid0的两块硬盘同时损坏,不允许两个raid0中相同数据的磁盘同时损坏

把几个磁盘结合在一起,raid去掉之后数据是不会丢失的

raid1+0部署

需要添加四块硬盘,重启虚拟机进行加载

[root@localhost ~]# fdisk /dev/sdb
加一个2g的主分区,类型都改为fd,raid
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

检查是否安装了mdadm管理工具(做raid的工具)

[root@localhost ~]# rpm -qa | grep mdadm
mdadm-4.0-13.el7.x86_64

首先创建两个raid1

[root@localhost ~]# mdadm -Cv /dev/md1 -a yes -n2 -l1 /dev/sdb1 /dev/sdc1
-C:创建   v:详细信息
/dev/md1:raid卷的名字,必须以md开头
-a yes:如果遇到需要输入yes的步骤创建设备,将会自动创建
-n:使用几块硬盘
-l:raid等级,1=raid1,0=raid0,5=raid5
[root@localhost ~]# mdadm -Cv /dev/md2 -a yes -n2 -l1 /dev/sdd1 /dev/sde1

然后在合成一个raid0

[root@localhost ~]# mdadm -Cv /dev/md10 -a yes -n2 -l0 /dev/md1 /dev/md2

完成了

查看raid卷

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] [raid0] 
md10 : active raid0 md2[1] md1[0]
      4184064 blocks super 1.2 512k chunks

md2 : active raid1 sde1[1] sdd1[0]
      2094080 blocks super 1.2 [2/2] [UU]

md1 : active raid1 sdc1[1] sdb1[0]
      2094080 blocks super 1.2 [2/2] [UU]

如何使用raid卷

[root@localhost ~]# mkfs -t xfs /dev/md10  # 格式化
[root@localhost ~]# mkdir /mnt/md10 # 创建挂载目录
[root@localhost ~]# mount /dev/md10 /mnt/md10/

自动挂载则,加入到/etc/fstab

如何删除(停掉)raid卷

[root@localhost ~]# mdadm -S /dev/md10
mdadm: stopped /dev/md10

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0