• 存储系列1-openfiler开源存储管理平台实践


    image

    (一)openfiler介绍

    Openfiler能把标准x86/64架构的系统变为一个更强大的NAS、SAN存储和IP存储网关,为管理员提供一个强大的管理平台,并能应付未来的存储需求。openfiler可以安装在x86/64架构的工业标准服务器上,否定了昂贵的专有存储系统的需求。只需10分钟即可把系统部署到戴尔、惠普、IBM等标准配置服务器上,服务器就变为一个功能强大的存储网络了。

    此外,与其它存储方案不同的是,openfiler的管理是通过一个强大的、直观的基于web的图形用户界面。通过这个界面,管理员可以执行诸如创建卷、网络共享磁盘分配和管理RAID等工作。

    (1.1)丰富的协议支持

    openfiler支持多种文件界别和块级别的数据存储输出协议,几乎 涵盖现有全部的网络存储服务.

    块级别的协议:

    • iSCSI
    • 光纤通道(FC)

    文件级别的协议:

    • NFS
    • CIFS
    • HTTP/DAV
    • FTP
    • rsync

    clipboard

    (1.2)强大的管理功能

    现在的存储解决方案都存在管理能力不足的缺点,openfiler提供了直观且易操作的基于web的图形操作界面(GUI),openfiler中所有网络功能和存储方面的设置均通过这个管理界面来完成。管理界面分为网络、物理卷、用户和组的认证/授权、系统配置和状态信息等。

     

    (二)openfiler安装

    安装文档见:http://www.openfiler.org.cn/index.php/document/6-openfiler-install

     

    (三)openfiler配置

    安装安装之后,登入openfiler服务器,会提示Web网页的管理地址,直接访问Web网页即可。网页的默认初始账号密码为:openfiler/password。

    clipboard

    (3.1)openfiler添加存储磁盘

    STEP1:在openfiler服务器中添加一块磁盘,用作共享磁盘

    clipboard

    STEP2:在openfiler的Web管理界面可以看到新添加的磁盘

    clipboard

    STEP3:点击磁盘名,将磁盘创建为物理卷或者软RAID磁盘阵列(RAID需要多块磁盘),这里创建为物理卷

    clipboard

    STEP4:使用物理卷创建卷组(Volume Group)

    clipboard

    STEP5:使用卷组创建逻辑卷

    clipboard

    clipboard

    (3.2)网络访问配置

    由于iscsi和文件系统(xfs,ext3等)都是走网络协议,其它机器想要访问openfiler上的存储,还需要开通网络访问权限。

    STEP1:打开Web的system页面;

    STEP2:在Network Access Configuration部分添加可以访问openfiler的网段,类型设置为share

    clipboard

     

    (四)使用openfiler对外提供存储

    (4.1)使用openfiler对外提供块存储(类似SAN存储)

    使用openfiler对外提供块存储,可以使用iSCSI协议,也可以使用Fibre Channel协议,这里使用基于IP的iSCSI协议。

    STEP1:首先打开openfiler服务器的iSCSI Target服务

    clipboard

    STEP2:创建基于块的lv,创建方法见上面:openfiler添加存储磁盘。需要注意最后选择块类型

    clipboard

    STEP3:添加iSCSI Target

    选择添加Target IQN,target IQN是存储客户端访问存储的连接信息

    clipboard

    STEP4:选择对应的lv,打开LUN Mapping

    clipboard

    STEP5:打开Network ACL

    clipboard

    以上操作均在openfiler的WEB界面完成,接下来在客户机上配置iSCSI。

    STEP6:客户端机器上安装iscsi initiator

    yum install -y iscsi-initiator-utils*

    查看安装

    [root@mysql8 ~]# rpm -qa|grep iscsi
    iscsi-initiator-utils-iscsiuio-6.2.0.874-17.el7.x86_64
    iscsi-initiator-utils-6.2.0.874-17.el7.x86_64
    iscsi-initiator-utils-devel-6.2.0.874-17.el7.x86_64

    STEP7:iscsi initiator通过iscsiadm来管理,我们查看提供服务的iscsi target机器上有哪些target,因为iscsi上有2块网卡,所以存在2个路径:

    [root@mysql8 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.10.100
    192.168.10.100:3260,1 iqn.2006-01.com.openfiler:tsn.44b5a4673d71
    192.168.20.100:3260,1 iqn.2006-01.com.openfiler:tsn.44b5a4673d71

    STEP8:使用iscsiadm登录到iscsi-target,登陆成功后,iscsi-target下面的磁盘也就共享过来了(有时需要重启iscsi initiator机器)。

    [root@mysql8 ~]# iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.44b5a4673d71 –portal 192.168.10.100:3260 --login

    clipboard

    我们在存储端只设置了4块磁盘,但是在客户端缺出现了8块磁盘,这是因为openfiler有2块网卡,使用2个IP登录iSCSI-Target,所以产生了重复信息。要查看各个IP访问到的存储信息,可以使用如下命令:

      1 [root@testserver ~]#  iscsiadm -m session -P 3
      2 iSCSI Transport Class version 2.0-870
      3 version 6.2.0.874-17
      4 Target: iqn.2006-01.com.openfiler:tsn.44b5a4673d71 (non-flash)
      5     Current Portal: 192.168.10.100:3260,1
      6     Persistent Portal: 192.168.10.100:3260,1
      7         **********
      8         Interface:
      9         **********
     10         Iface Name: default
     11         Iface Transport: tcp
     12         Iface Initiatorname: iqn.1994-05.com.redhat:6e1c3397973
     13         Iface IPaddress: 192.168.10.10
     14         Iface HWaddress: <empty>
     15         Iface Netdev: <empty>
     16         SID: 1
     17         iSCSI Connection State: LOGGED IN
     18         iSCSI Session State: LOGGED_IN
     19         Internal iscsid Session State: NO CHANGE
     20         *********
     21         Timeouts:
     22         *********
     23         Recovery Timeout: 120
     24         Target Reset Timeout: 30
     25         LUN Reset Timeout: 30
     26         Abort Timeout: 15
     27         *****
     28         CHAP:
     29         *****
     30         username: <empty>
     31         password: ********
     32         username_in: <empty>
     33         password_in: ********
     34         ************************
     35         Negotiated iSCSI params:
     36         ************************
     37         HeaderDigest: None
     38         DataDigest: None
     39         MaxRecvDataSegmentLength: 262144
     40         MaxXmitDataSegmentLength: 131072
     41         FirstBurstLength: 262144
     42         MaxBurstLength: 262144
     43         ImmediateData: No
     44         InitialR2T: Yes
     45         MaxOutstandingR2T: 1
     46         ************************
     47         Attached SCSI devices:
     48         ************************
     49         Host Number: 3    State: running
     50         scsi3 Channel 00 Id 0 Lun: 0
     51             Attached scsi disk sdc        State: running
     52         scsi3 Channel 00 Id 0 Lun: 1
     53             Attached scsi disk sde        State: running
     54         scsi3 Channel 00 Id 0 Lun: 2
     55             Attached scsi disk sdg        State: running
     56         scsi3 Channel 00 Id 0 Lun: 3
     57             Attached scsi disk sdh        State: running
     58    
     59    =========================================手动分割线==========================================
     60    
     61     Current Portal: 192.168.20.100:3260,1
     62     Persistent Portal: 192.168.20.100:3260,1
     63         **********
     64         Interface:
     65         **********
     66         Iface Name: default
     67         Iface Transport: tcp
     68         Iface Initiatorname: iqn.1994-05.com.redhat:6e1c3397973
     69         Iface IPaddress: 192.168.20.20
     70         Iface HWaddress: <empty>
     71         Iface Netdev: <empty>
     72         SID: 2
     73         iSCSI Connection State: LOGGED IN
     74         iSCSI Session State: LOGGED_IN
     75         Internal iscsid Session State: NO CHANGE
     76         *********
     77         Timeouts:
     78         *********
     79         Recovery Timeout: 120
     80         Target Reset Timeout: 30
     81         LUN Reset Timeout: 30
     82         Abort Timeout: 15
     83         *****
     84         CHAP:
     85         *****
     86         username: <empty>
     87         password: ********
     88         username_in: <empty>
     89         password_in: ********
     90         ************************
     91         Negotiated iSCSI params:
     92         ************************
     93         HeaderDigest: None
     94         DataDigest: None
     95         MaxRecvDataSegmentLength: 262144
     96         MaxXmitDataSegmentLength: 131072
     97         FirstBurstLength: 262144
     98         MaxBurstLength: 262144
     99         ImmediateData: No
    100         InitialR2T: Yes
    101         MaxOutstandingR2T: 1
    102         ************************
    103         Attached SCSI devices:
    104         ************************
    105         Host Number: 4    State: running
    106         scsi4 Channel 00 Id 0 Lun: 0
    107             Attached scsi disk sdb        State: running
    108         scsi4 Channel 00 Id 0 Lun: 1
    109             Attached scsi disk sdd        State: running
    110         scsi4 Channel 00 Id 0 Lun: 2
    111             Attached scsi disk sdf        State: running
    112         scsi4 Channel 00 Id 0 Lun: 3
    113             Attached scsi disk sdi        State: running
    View Code

    STEP9:为了不去重复识别磁盘,需要在iSCSI initiator服务器上安装多路径软件

    # 安装多路径软件
    yum install -y device-mapper*
    
    # 将多路径软件添加至内核模块中
    modprobe dm-multipath
    modprobe dm-round-robin
    
    # 检查内核添加情况
    [root@mysql8 ~]# lsmod |grep multipath
    dm_multipath           27427  6 dm_round_robin,dm_service_time
    dm_mod                123303  23 dm_round_robin,dm_multipath,dm_log,dm_mirror,dm_service_time
    
    # 设置开机自启动
    systemctl enable multipathd.service
    
    # 检查开机自启动
    [root@mysql8 ~]# systemctl list-unit-files|grep multipath
    multipathd.service                            enabled

    启动多路径软件multipathd

    # 创建多路径参数配置文件
     /sbin/mpathconf --enable
    
    # 启动多路径软件multipathd
    systemctl start multipathd.service

    查看多路径磁盘,一共有四个磁盘,名字分别为mpatha、mpathb、mpathc、mpathd

    [root@testserver ~]# multipath -ll
    mpathd (14f504e46494c45527539434a6e4e2d497862592d786f7845) dm-6 OPNFILER,VIRTUAL-DISK    
    size=15G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 3:0:0:3 sdh 8:112 active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
      `- 4:0:0:3 sdi 8:128 active ready running
    mpathc (14f504e46494c4552756250474a432d776575552d4f6d6f43) dm-5 OPNFILER,VIRTUAL-DISK    
    size=10G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 3:0:0:2 sdg 8:96  active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
      `- 4:0:0:2 sdf 8:80  active ready running
    mpathb (14f504e46494c45527341486541542d50624e502d4b357963) dm-4 OPNFILER,VIRTUAL-DISK    
    size=10G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 3:0:0:1 sde 8:64  active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
      `- 4:0:0:1 sdd 8:48  active ready running
    mpatha (14f504e46494c4552355359507a782d674f55302d32446331) dm-3 OPNFILER,VIRTUAL-DISK    
    size=10G features='0' hwhandler='0' wp=rw
    |-+- policy='service-time 0' prio=1 status=active
    | `- 3:0:0:0 sdc 8:32  active ready running
    `-+- policy='service-time 0' prio=1 status=enabled
      `- 4:0:0:0 sdb 8:16  active ready running

    到这里,我们就可以使用从openfiler挂载过来的磁盘了。

    NOTE:

    iSCSI(Internet Small Computer System Interface)。iSCSI技术由IBM公司研究开发,是一个供硬件设备使用的、可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。iSCSI是一种基于 TCP/IP 的协议,用来建立和管理 IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。

    • iSCSI target:就是储存设备端,存放磁盘或RAID的设备,目前也能够将Linux主机模拟成iSCSI target了!目的在提供其他主机使用的『磁盘』;
    • iSCSI initiator:就是能够使用target的用户端,通常是服务器。也就是说,想要连接到iSCSI target的服务器,也必须要安装iSCSI initiator的相关功能后才能够使用iSCSI target提供的磁盘。

    关于磁盘多路径,本文并没有深入介绍如何配置。如果想要了解,可以查看redhat官方文档(中文的哦! ):https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/dm_multipath/index

     

    (4.2)使用openfiler对外提供文件系统存储(NAS存储)

    首先我们需要了解一下什么是网络附加存储(NAS),这一段摘自redhat官方文档

    网络附加存储 (NAS) 是一个文件级存储架构,使用一个或多个配备专用磁盘的服务器来存储数据,并与连接网络的大量客户端共享这些数据。

    NAS 设备会将数据当作文件。虽然从技术层面来看它们都能完成一般的服务器任务,但是 NAS 设备运行的软件可以保护数据并处理各种权限。所以,NAS 设备不需要功能完善的操作系统。大多数 NAS 都包含针对数据存储和数据显示进行过精调的嵌入式轻量级操作系统。为了显示这些文件,NAS 设备会使用基于文件的标准协议,如网络文件系统 (NFS)、服务器消息块 (SMB)、通用互联网文件系统 (CIFS) 和/或 Apple 文件传输协议 (AFP),分别与 Linux®、UNIX、Microsoft Windows 和 Apple 设备进行通信。

    简单而言,NAS存储是一个基于网络的该项存储,使用不同操作系统( Linux、UNIX、Windows 和 Apple )的用户可以通过不同的网络协议连接到同一个NAS文件系统上,实现共享访问。

    openfiler可以当做一台NAS服务器,从而给其它用户共享存储,接下来将一步一步创建NAS共享存储。

    STEP1:在openfiler的WEB界面的Services中打开CIFS Server和NFS Server服务。

    clipboard

    STEP2:在shares中点击“create new filesystem volumn”

    clipboard

    STEP3:选择卷组,创建逻辑卷

    clipboard

    STEP4:创建逻辑卷之后即可在“shares”看到刚哥创建的逻辑卷

    clipboard

    右键,创建文件夹

    clipboard

    STEP5:共享访问控制模式选择public guest access

    clipboard

    STEP6:访问协议,将NFS和CIFS设置为读写(RW)即可

    clipboard

    STEP7:在客户端机器上挂载磁盘

    # 创建挂载路径
    [root@testserver ~]# mkdir /data02
    
    # 挂载
    [root@testserver ~]# mount -t nfs 192.168.10.100:/mnt/vg_test/lv_test02/data02 /data02

    挂载之后,就可以看见了。

    clipboard

    为了重启机器后自动挂载,在fstab文件中添加信息

    [root@testserver ~]# vim /etc/fstab 
    # 添加如下挂载命令
    192.168.10.100:/mnt/vg_test/lv_test02/data02  /data02  nfs defaults        0 0

    【完】

  • 相关阅读:
    HashMap(HashSet)的实现
    C/C++ 安全编码 —— 指针与内存
    AlexNet神经网络结构
    查看,修改动态组成员/通讯组
    刷新已禁用用户邮箱状态
    监控DAG状态
    AD诊断命令
    PowerShell管理Exchange
    TCP连接(Time_Wait、Close_Wait)说明
    IIS配置(安装IIS、.Net、更改IIS Log目录位置)
  • 原文地址:https://www.cnblogs.com/lijiaman/p/13854674.html
Copyright © 2020-2023  润新知