DAS+NAS+SAN(iscsi实现IP-SAN)

Posted 郭怀远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAS+NAS+SAN(iscsi实现IP-SAN)相关的知识,希望对你有一定的参考价值。

文章目录


一、Linux存储分层

简单来说,存储就是存放数据的介质

1. Linux上如何挂载ntfs格式的移动硬盘

Linux内核支持ntfs,但centos7系统并没有加上此功能,解决方法两种:

  • 重新编译内核,在内核加上支持ntfs(此方法不推荐,因为编译内核会造成内核运行不稳定, 没有过硬的实力不要做)
  • 安装软件,为内核加上支持ntfs的模块
安装
# yum install epel-release  -y
# yum install ntfs-3g        

挂载命令
# mount.ntfs-3g /dev/sdb1 /mnt

一个新的硬盘在linux系统里使用一般来说就三步:(分区,格式化)-挂载-使用

2. Linux存储五层


上面比较难理解的是虚拟文件系统: 又名VFS (Virtual File System),作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。

简单来说,就是使用上层应用程序不用关注底层是什么文件系统, 统一使用。

3. 存储的分类

存储分类描述
DAS 直连式存储 (direct access/attach storage)如:机箱里的disk,或通过接口直连到系统总线上的disk(如U盘,移动硬盘)
NAS 网络附加存储(network attched storage)通过交换机,路由器连接起来,共享的是目录。如:nfs,samba,ftp
SAN 存储区域网络(storage area network)通过交换机,路由器连接起来的高速存储网络,共享的是**块设备

DAS: 直接连接系统,不受网速限制,速度快; 扩展容量有上限。

NAS与SAN: 通过网络设备连接的远程存储,速度受网络影响; 但扩展方便,几乎无上限。

NAS和SAN都是通过网络(通过了网络设备,如路由器,交换机等)的,但NAS共享的是应用层的目录,而SAN共享的是/dev/sdb1或/dev/sdb这种块设备

4. 存储类型的分类

存储类型描述
文件存储NAS都属于这一类。简单来说就是mount后直接使用的
块存储SAN都属于这一类。简单来说就是类似/dev/sdb这种,要分区,格式化后才能mount使用
对象存储通俗来讲,就是存储是什么形式,怎么做的都不用关注。使用的人只要直接使用程序接口去访问, 进行get下载与put上传就好

文件存储: 类似一个大的目录,多个客户端都可以挂载过来使用。

  • 优点: 利于数据共享
  • 缺点: 速度较慢

块存储: 类似一个block设备,客户端可以格式化,挂载并使用,和用一个硬盘一样。

  • 优点: 和本地硬盘一样,直接使用,速度较快
  • 缺点: 数据不共享

对象存储: 一个对象我们可以看成一个文件, 综合了文件存储和块存储的优点。

  • 优点: 速度快,数据共享
  • 缺点: 成本高, 不兼容现有的模式

二、SAN

1. SAN的分类

两种SAN:

  1. FC-SAN: 早期的SAN, 服务器与交换机的数据传输是通过光纤进行的, 服务器把SCSI指令传输到存储设备上,不能走普通LAN网的IP协议。
  2. IP-SAN: 用IP协议封装的SAN, 可以完全走普通网络,因此叫做IP-SAN, 最典型的就是ISCSI。

FC-SAN优缺点: 速度快(2G,8G,16G), 成本高。

IP-SAN优缺点: 速度较慢(已经有W兆以太网标准), 成本低。

2. iscsi实现IP-SAN

iscsi:网络小型计算机接口,就是一个通过网络可以实现SCSI接口的协议

1)环境准备

Linux平台通过iscsi实现IP-SAN
准备两台虚拟机并处于同一网段。

第一步:配置ip

# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BOOTPROTO="dhcp"
IPADDR=192.168.44.120
NETMASK=255.255.255.0
GATEWAY=192.168.44.2
DNS1=8.8.8.8
DNS2=114.114.114.114
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"

第二步:都配置主机名及其主机名互相绑定

# hostnamectl set-hostname export
# su

# hostnamectl set-hostname import
# su

# vim /etc/hosts
...
192.168.44.110 export
192.168.44.120 import

第三步:关闭防火墙和SELinux

# systemctl stop firewalld
# systemctl disable firewalld

# setenforce 0
# vim /etc/selinux/config
...
SELINUX=disabled

第四步:时间同步

# ntpdate 111.230.50.201

第五步:配置yum源(需要加上epel源)
yum源配置

# yum install epel-release -y

第六步:
在存储导出端模拟存储(模拟存储可以使用多种形式,如硬盘:/dev/sdb,分区:/dev/sdb1,软raid:/dev/md0,逻辑卷:/dev/vg/lv01,dd if=/dev/zero of=/tmp/storage_file bs=1M count=1000创建的大文件等等), 本实验请自行加一个硬盘来模拟

在导出机器上添加一块磁盘


第七步:使用fdisk对/dev/sdb进行分区
分区教程
注意:以下操作都是在导出机器export 上进行,

# fdisk /dev/sdb
.....
# lsblk
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    2G  0 part 
└─sdb2            8:18   0    3G  0 part

刷新分区表
# partx -a /dev/sdb
格式化分区
# mkfs.ext4 /dev/sdb1
...
创建挂载点并挂载
# mkdir /u1
# mkdir /u2
# mount /dev/sdb1 /u1
# mount /dev/sdb2 /u

在挂载目录生成1G文件

# dd if=/dev/zero of=/u1/test_file bs=1M count=1000

2)操作过程

  1. export导出端安装软件, 配置导出的存储,启动服务
  2. import导入端安装软件, 导入存储,启动服务

第1步: 在导出端上安装iscsi-target-utils软件包

# yum install scsi-target-utils -y

第2步: 在导出端配置存储的导

[root@export ~]# rpm -qa | grep scsi
lsscsi-0.27-6.el7.x86_64
scsi-target-utils-1.0.55-4.el7.x86_64
查看配置文件
[root@export ~]# rpm -qc scsi-target-utils-1.0.55-4.el7.x86_64
/etc/sysconfig/tgtd
/etc/tgt/conf.d/sample.conf
/etc/tgt/targets.conf
/etc/tgt/tgtd.conf

修改配置文件

# vim /etc/tgt/targets.conf

default-driver iscsi

<target scsi:data>              # 共享名,也就是存储导入端发现后看到的名称
        backing-store /dev/sdb # /dev/sdb是实际要共享出去的设备
</target>

第三步:导出端启动服务并验证

[root@export ~]# systemctl start tgtd
[root@export ~]# systemctl enable tgtd
Created symlink from /etc/systemd/system/multi-user.target.wants/tgtd.service to /usr/lib/systemd/system/tgtd.service.
[root@export ~]# lsof -i:3206
[root@export ~]# tgt-admin --show
Target 1: scsi:data
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
    ACL information:
        ALL

第4步: 导入端安装iscsi-initiator-utils软件包

# yum install iscsi-initiator-utils

第5步: 导入端导入存储
在import 上操作

在登录前必须要先连接并发现资源(discovery)

[root@import ~]# iscsiadm -m discovery -t sendtargets -p 192.168.44.110
192.168.44.110:3260,1 scsi:data

发现资源成功后,就可以进行资源登录了

[root@import ~]# iscsiadm -m node -l
Logging in to [iface: default, target: scsi:data, portal: 192.168.44.110,3260] (multiple)
Login to [iface: default, target: scsi:data, portal: 192.168.44.110,3260] successful.

登录成功后,直接使用fdisk -l查看

import# fdisk -l

以上是关于DAS+NAS+SAN(iscsi实现IP-SAN)的主要内容,如果未能解决你的问题,请参考以下文章

das nas san iscsi 之间的关系简介

das,nas,san的介绍

网络存储服务ip-san搭建

iSCSI网络存储技术-实例解读

ISCSI网络存储服务

存储服务分类:块存储、文件存储、对象存储