zoukankan      html  css  js  c++  java
  • iscsi,nfs

    存储概述

    存储的目标

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

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

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

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

    存储技术分类 

    SCSI小型计算机系统接口 :

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

    DAS直连式存储:

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

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

      数据量越大,性能越差。

      

    NAS网络技术存储

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

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

    SAN存储区域网络

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

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

     接口如SCSIFC

     通信协议如IPSCSI  

        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

     最初由CiscoIBM开发

    优势:

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

     相对FC SANISCSI实现的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

  • 相关阅读:
    leetcode 136 只出现一次的数字
    echo命令 显示内容
    cat 命令 查看文件内容
    more命令 分屏查看文件
    tree 命令 以树形显示目录
    leetcode 16 最接近三数之和 双指针问题
    破解NFC卡
    小米手机root
    软件设计文档
    下属做事拖拉怎么办
  • 原文地址:https://www.cnblogs.com/wwchihiro/p/9238092.html
Copyright © 2011-2022 走看看