存储概述

存储的目标

存储是根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问。

一方面它是数据临时或长期驻留的物理媒介。

另一方面,它是保证数据完整安全存放的方式或行为。

存储就是把这两个方面结合起来,向客户提供一套数据存放解决方案。

存储技术分类

SCSI小型计算机系统接口 :

small computer system interface 作为输入\输出接口,主要用于硬盘、光盘、磁带机等设备

DAS直连式存储:

direct-attached storage 将存储设备通过SCSI接口或光纤通道直接连接到计算机主板上;

不能实现数据与其他主机的共享;占用服务器操作系统资源,如CPU、IO等;

数据量越大,性能越差。

NAS网络技术存储:

network-attached  storage 一种专用数据存储服务器,以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资;

用户通过TCP/IP协议访问数据-采用标准的NFS(linux中)/HTTP/CIFS(window-linux-samba)等。

SAN存储区域网络:

storage area network 通过光纤交换机、光纤路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器连接起来,形成高速专网网络;

组成部分 如路由器、光纤交换机;

接口如SCSI、FC;

通信协议如IP、SCSI

fibre channel (传统-贵)一种适合于千兆数据传输的、成熟而安全解决方案;

与传统的SCSI相比,FC提供更高的数据传输速率、更远的传输距离、更多的设备连接支持以及更稳定的性能、更简易的安装;

FC主要组件:

光纤、HBA(主机总线适配置器)、FC交换机、FC光纤通道

FC交换机交换拓扑

-点到点:point-to-point 简单将两个设备互连

-已裁定的环路:arbitrated loop可多达126个设备共享一段信道或环路

-交换式拓扑(星型):switched fabric 所有设备通过光纤交换机互连

ISCSI技术(新-廉价):

internet SCSI  IETF制定的标准,将SCSI数据块映射为以太网数据包;

是一种基于IP storage理论的新型存储技术;

将存储行业广泛应用的SCSI接口技术与IP网络相结合;

可以在IP网络上构建SAN;

最初由Cisco和IBM开发

优势:

基于IP协议技术的标准;允许网络在TCP/IP协议上传输SCSI命令;

相对FC SAN,ISCSI实现的IP SAN投资更低;

解决了传输效率、存储容量、兼容性、开放性、安全性等方面的问题;

没有距离限制

客户端 ISCSI initiator :

软件实现,成本低、性能较低 ;

ISCSI HBA:

硬件实现,性能好,成本较高

存储设备端 ISCSI target

以太网交换机

6.5系统

iscsi服务端:

[root@storage88 ~]#yum -y install scsi-target-utils
[root@storage88 ~]#cp /etc/tgt/targets.conf /opt/
[root@storage88 ~]# sed -n '62,75p' /etc/tgt/targets.conf
<target iqn.2017-09.cn.tedu:storage88.diskb>
backing-store /dev/vdb     //设备
write-cache off                  //写缓存关不关闭
vendor_id mydiskb           //厂商名
product_id tarena             //型号名
initiator-address 192.168.4.30
initiator-address 192.168.4.40
</target>
<target iqn.2017-09.cn.tedu:storage88.diskc>
backing-store /dev/vdc
write-cache off
vendor_id mydiskc
product_id tarena
</target>
[root@storage88 ~]# service tgtd start
[root@storage88 ~]# netstat -untlap | grep :3260
[root@storage88 ~]# tgt-admin  show
[root@storage88 ~]# chkconfig --level 35 tgtd on

iscsi客户端(应用服务器)

#yum -y  install iscsi-initiator-utils

#systemctl start iscsi

#iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.88 --discover (发现设备)

#iscsiadm --mode(方式) discoverydb(发现) --type(类型) sendtargets --portal(ip地址) 192.168.4.88  --discover(发现设备)

#iscsiadm -m discovery -t st -p 192.168.4.88 -D(发现设备)

#iscsiadm --mode node(节点) --targetname(iqn名称) iqn.2017-11.cn.tedu:storage88.diskc --portal 192.168.4.88:3260 -l    (连接设备)

#iscsiadm -m node -T iqn.2017-11.cn.tedu:storage88.diskc -p 192.168.4.88:3260  -l(连接设备)

#iscsiadm --mode node --targetname iqn.2017-11.cn.tedu:storage201.diskc --portal 192.168.4.88:3260 -u(断开连接)

RHEL7

iscsi服务端:

#rpm -q targetcli

#targetcli
#/> cd backstores/block
#create diskb /dev/vdb

cd /iscsi
/> create iqn.2017-09.cn.tedu:storage88
/>ls

cd /iscsi/iqn.2017-09.cn.tedu:storage88/tpg1/acls
/> create iqn.2017-09.cn.tedu:web10
/> ls

cd /iscsi/iqn.2017-09.cn.tedu:storage88/tpg1/luns
/> create /backstores/block/diskb
/> ls

cd /iscsi/iqn.2017-09.cn.tedu:storage88/tpg1/portals
/> delete 0.0.0.0 3260
/> create 192.168.4.88 3260
/> ls

client:

#yum -y install iscsi-initiator-utils

#iscsiadm --mode discoverydb --type sendtargets --portal 192.168.4.77 --discover

vim /etc/iscsi/initiatorname.iscsi
#InitiatorName=iqn.1994-05.com.redhat:9be67a34377f
InitiatorName=iqn.2017-09.cn.tedu:web10
:wq

#systemctl restart iscsid.service

#iscsiadm --mode node -T iqn.2017-09.cn.tedu:storage77 --portal 192.168.4.77:3260 --login

UDEV:它是动态管理设备文件的方法

设备文件管理方法

devfs

linux早期采用的静态管理方法;

/dev目录下有大量静态文件;

内核版本2.6.13开始被完全取代。

udev

只有连到系统上来的设备才在/dev下创建设备文件;

与主、次设备编号无关;

为设备提供持久、一致的名字。

接入设备事件链

内核发现设备并导入设备状态到sysfs;

udev接到事件通知;

udev创建设备节点或是运行指定程序;

udev通知hald守护进程;

HAL探测设备信息;

HAL创建设备对象结构;

HAL通过系统消息总线广播该事件;

用户程序也可以监控该事件。

udev的作用

从内核收到添加/移除硬件事件时,udev将会分析:

/sys目录下信息;

/etc/udev/rules.d目录中的规则

基于分析结果,udev会:

处理设备命名;

决定要创建哪些设备文件或链接;

决定如何设置属性;

决定触发哪些事件

udev事件监控

# udevadm  monitor --property

主配置文件/etc/udev/udev.conf

udev_root:创建设备文件位置,默认为/dev

udev_rules:udev规则文件位置,默认为/etc/udev/rules.d

udev_log:syslog优先级,缺省为err

操作符:==匹配   != 不匹配   =指定赋予的值  +=添加新值 :=指定值,且不允许被替换

常用替代变量:%k 内核所识别出来的设备名,如sdb1

%n 设备的内核编号,如sda3中的3

%p 设备路径,如/sys/block/sdb/sdb1

%% %符号本身

配置 udev

发现设备
#udevadm info --query=path --name=/dev/sda (查看绝对路径)

#udevadm info --path=/devices/platform/host4/session3/target4:0:0/4:0:0:1/block/sda --attribute-walk(查看详细信息)

#vim /etc/udev/rules.d/70-iscsi.rules
SUBSYSTEM=="block",ATTR{size}=="10485760",ATTRS{vendor}=="tarena ",ATTRS{model}=="disktwo ",SYMLINK+="iscsi/diskb"()
SUBSYSTEM=="block",ATTR{size}=="10485760",ATTRS{vendor}=="tarena ",ATTRS{model}=="diskthree ",SYMLINK+="iscsi/diskc"

#start_udev (启动)
#ls -l /dev/iscsi/disk*

注意:

配置开机时自动连接iSCSI设备:
# vim /var/lib/iscsi/nodes/<TAB><TAB><TAB>
.. .. //查找 startup,修改第2个startup的值
node.conn[0].startup = automatic

# systemctl enable iscsi

关于iSCSI客户机reboot时死机的bug:
先sync,再reboot
或者
# vim /etc/bashrc
.. ..
alias reboot='sync ; reboot -f'
# source /etc/bashrc
# reboot

格式化iscsi共享存储时如果是本地文件系统,两个客户端挂载后不能同时写。

gfs格式的话,必须在一个集群。

nfs

target端

1 提供存储空间
#fdisk /dev/vdd (横向扩展做成lvm)
#partprobe /dev/vdd 
#fdisk -l
#mkfs.ext4 /dev/vdd1
#mount /dev/vdd1 /shardir
#df -h shardir

2 使用NFS服务共享磁盘挂载目录
#yum -y install nfs-utils rpcbind(帮nfs传输数据)
#vim /etc/exports
/shardir 192.168.4.101(rw) 192.168.4.102(rw)
#chmod +w /shardir
#service rpcbind start
#service nfs start
#showmount -e localhost

web前端
#yum -y install nfs-utils rpcbind
#service rpcbind start
#chkconfig rpcbind on
#service nfs start
#chkconfig nfs on
#showmount -e 192.168.4.201
#vim /etc/fstab
192.168.4.201:/shardir /var/www/html nfs _netdev(网络设备) 0 0
#mount -a

配置multipath多路径

多路径概述

当服务器到某一存储设备由多条路径时,每条路径都会识别为一个单独的设备

多路径允许您将服务器节点和存储阵列间的多个I/O路径配置为一个单一设备

这些I/O路径是可包含独立电缆、交换器和控制器的实体SAN链接

多路径集合了I/O路径,并生成由这些集合路径组成的新设备

多路径主要功能

冗余 --主备模式,高可用

改进的性能 --主主模式,负载均衡

多路径设备

若没有DM multipath ,从服务器节点到存储控制器的每一条路径都会被系统视为独立的设备,即使I/O路径链接的是相同的服务器节点到相同的存储控制器也是如此

DM multhpath 提供了有逻辑的管理I/O路径的方法,即在基础设备顶端生成单一多路径设备

多路径设备识别符

每个多路径设备都有一个WWID(全球识别符),它是全球唯一的、无法更改的号码

默认情况下会将多路径设备的名称设定为它的WWID

可以在多路径配置文件中设置user_friendly_names选项,该选项可将别名设为格式为mpathn的节点唯一名称

也可以自定义存储设备名称

multipath多路径共享

target端
#vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.2.201
#ifup eth1

#vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.2.101
#ifup eth1

#vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.2.102
#ifup eth1

#vim /etc/tgt/targets.conf
<target iqn.2017-11.cn.tedu:storage201.diske>
  backing-store /dev/vde
  write-cache off
  initiator-address 192.168.4.101
  initiator-address 192.168.4.102
  initiator-address 192.168.2.101
  initiator-address 192.168.2.102
</target>

web前端
192.168.4.101
#iscsiadm -m discovery -t st -p 192.168.4.201 -D
#iscsiadm -m discovery -t st -p 192.168.2.201 -D
#iscsiadm -m node -T iqn.2017-11.cn.tedu:storage201.diske -p 192.168.4.201:3260 -l
#iscsiadm -m node -T iqn.2017-11.cn.tedu:storage201.diske -p 192.168.2.201:3260 -l
#ls /dev/sd*
/dev/sda /dev/sdb

192.168.4.102
#iscsiadm -m discovery -t st -p 192.168.4.201 -D
#iscsiadm -m discovery -t st -p 192.168.2.201 -D
#iscsiadm -m node -T iqn.2017-11.cn.tedu:storage201.diske -p 192.168.4.201:3260 -l
#iscsiadm -m node -T iqn.2017-11.cn.tedu:storage201.diske -p 192.168.2.201:3260 -l
#ls /dev/sd*
/dev/sda /dev/sdb

wwid(全球识别符)
#yum -y install device-mapper-multipath
#mpathconf --user_friendly_names n //创建配置文件并启用多路径
#scsi_id --whitelisted --device=/dev/sda //获取wwid
1LET 000100001
#scsi_id - -whitelisted --device=/dev/sdb
1LET 000100001
#vim /etc/multipath.conf
defaulfs{
  user_friendly_names no //通过wwid识别
  getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" //获取wwid的命令
}
multipaths{
  multipath{
    wwid "1LET 000100001"
    alias mpathe
    }
  }
#service multipathd start
#chkconfig multipathd on
#ls /dev/mapper
#multipath -rr //重新加载多路径信息
#multipath -ll //查看多路径信息
#fdisk /dev/mapper/mpathe
#partprobe /dev/mapper/mpathe
#mkfs.ext4 /dev/mapper/mpathep1
#mount /dev/mapper/mpathep1 /var/www/html

iscsi,nfs的更多相关文章

  1. 在ubuntu 16.04系统环境中搭建NAS(samba/iscsi/nfs)

    在ubuntu 16.04系统中搭建NAS环境 一.基本配置1:设置静态IPvi /etc/network/interfaces#iface ens32 inet dhcpiface ens32 in ...

  2. linux 存储技术 部署iSCSI NFS Multipath多路径

    存储技术应用存储是根据不同的应用环境通过采取合理,安全,有效的方式将数据保存到某些介质上并能保证有效的访问另一方面,它是保证数据完整安全存放的方式或行为存储就是把这两方面结合起来,向客户提供一套数据存 ...

  3. Openstack入门篇(十八)之Cinder服务-->使用NFS作为后端存储

    1.安装cinder-volume组件以及nfs [root@linux-node2 ~]# yum install -y openstack-cinder python-keystone [root ...

  4. 026-Cinder服务-->使用NFS作为后端存储

    以下将介绍如何使用NFS共享作为Openstack后端存储,本案例在计算节点上配置nfs [root@linux-node2 ~]# yum install -y openstack-cinder p ...

  5. 025-Cinder服务-->安装并配置一个本地存储节点(ISCSI)

    一:Cinder提供块级别的存储服务,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和卷类型的功能,块存储服务通常包含下列组件:cin ...

  6. Docker-3:Data Volume

    Sometimes,  applications need to share access to data or persist data after a container is deleted. ...

  7. libvirt

    http://libvirt.org/index.html libvirt supports: The KVM/QEMU Linux hypervisor The Xen hypervisor on ...

  8. Virtualization API之libvirt

    The virtualization API 之开源 libvirt探究 By Ruiy: libvirt supports Hypervisors(注,相关的hypervisors项目的权威网站已经 ...

  9. 存储那些事儿(三):OpenStack的块存储Cinder与商业存储的融合

    OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算‎软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目.OpenStack是IaaS(基础设施即服务)‎软 ...

随机推荐

  1. BLOB类型对应Long binary,CLOB对应Long characters

    BLOB类型对应Long binary,CLOB对应Long characters

  2. 2018-8-10-WPF-使用-VisualStudio-2017-项目文件

    title author date CreateTime categories WPF 使用 VisualStudio 2017 项目文件 lindexi 2018-08-10 19:16:53 +0 ...

  3. 使用colab平台进行训练

    https://www.zhongxiaoping.cn/2018/12/01/%E4%BD%BF%E7%94%A8colab%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C% ...

  4. HTML--简单的注册网页

    利用表格,渐变色 <body background="未标题-2.jpg"> <table align="center" border=&qu ...

  5. 2019-10-30-C#-dotnet-core-局域网组播方法

    title author date CreateTime categories C# dotnet core 局域网组播方法 lindexi 2019-10-30 9:0:48 +0800 2019- ...

  6. tp5 thinkphp5 多表关联查询 join查询

    model下: $res = \think\Db::name('article') ->alias("a") //取一个别名 ->join('admin ad','a. ...

  7. Python--day30--互联网协议与osi模型

  8. hadoop-1.2.1 伪分布配置

    首先JDK安装及相关环境变量配置 # Java environment setting JAVA_HOME=/usr/java/default CLASSPATH=.:$JAVA_HOME/lib/t ...

  9. sublime text3神器插件

    (首先安装)Package Control  Package Control,就像 Linux 下的 apt-get 和 yum 一样,它是 Sublime Text 的包管理器 1.Emmet 是一 ...

  10. 四叶草(css)

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <style> . ...