存储系列1-openfiler开源存储管理平台实践
(一)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
(1.2)强大的管理功能
现在的存储解决方案都存在管理能力不足的缺点,openfiler提供了直观且易操作的基于web的图形操作界面(GUI),openfiler中所有网络功能和存储方面的设置均通过这个管理界面来完成。管理界面分为网络、物理卷、用户和组的认证/授权、系统配置和状态信息等。
(二)openfiler安装
安装文档见:http://www.openfiler.org.cn/index.php/document/6-openfiler-install 。
(三)openfiler配置
安装安装之后,登入openfiler服务器,会提示Web网页的管理地址,直接访问Web网页即可。网页的默认初始账号密码为:openfiler/password。
(3.1)openfiler添加存储磁盘
STEP1:在openfiler服务器中添加一块磁盘,用作共享磁盘
STEP2:在openfiler的Web管理界面可以看到新添加的磁盘
STEP3:点击磁盘名,将磁盘创建为物理卷或者软RAID磁盘阵列(RAID需要多块磁盘),这里创建为物理卷
STEP4:使用物理卷创建卷组(Volume Group)
STEP5:使用卷组创建逻辑卷
(3.2)网络访问配置
由于iscsi和文件系统(xfs,ext3等)都是走网络协议,其它机器想要访问openfiler上的存储,还需要开通网络访问权限。
STEP1:打开Web的system页面;
STEP2:在Network Access Configuration部分添加可以访问openfiler的网段,类型设置为share
(四)使用openfiler对外提供存储
(4.1)使用openfiler对外提供块存储(类似SAN存储)
使用openfiler对外提供块存储,可以使用iSCSI协议,也可以使用Fibre Channel协议,这里使用基于IP的iSCSI协议。
STEP1:首先打开openfiler服务器的iSCSI Target服务
STEP2:创建基于块的lv,创建方法见上面:openfiler添加存储磁盘。需要注意最后选择块类型
STEP3:添加iSCSI Target
选择添加Target IQN,target IQN是存储客户端访问存储的连接信息
STEP4:选择对应的lv,打开LUN Mapping
STEP5:打开Network ACL
以上操作均在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
我们在存储端只设置了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
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服务。
STEP2:在shares中点击“create new filesystem volumn”
STEP3:选择卷组,创建逻辑卷
STEP4:创建逻辑卷之后即可在“shares”看到刚哥创建的逻辑卷
右键,创建文件夹
STEP5:共享访问控制模式选择public guest access
STEP6:访问协议,将NFS和CIFS设置为读写(RW)即可
STEP7:在客户端机器上挂载磁盘
# 创建挂载路径
[root@testserver ~]# mkdir /data02 # 挂载
[root@testserver ~]# mount -t nfs 192.168.10.100:/mnt/vg_test/lv_test02/data02 /data02
挂载之后,就可以看见了。
为了重启机器后自动挂载,在fstab文件中添加信息
[root@testserver ~]# vim /etc/fstab
# 添加如下挂载命令
192.168.10.100:/mnt/vg_test/lv_test02/data02 /data02 nfs defaults 0 0
【完】
存储系列1-openfiler开源存储管理平台实践的更多相关文章
- Storm 系列(二)实时平台介绍
Storm 系列(二)实时平台介绍 本章中的实时平台是指针对大数据进行实时分析的一整套系统,包括数据的收集.处理.存储等.一般而言,大数据有 4 个特点: Volumn(大量). Velocity(高 ...
- Quartz.net 的开源任务管理平台
Quartz.net 的开源任务管理平台 前面总结了很多,关于Quartz.net 的文章,介绍了如何使用Quartz.net.不清楚的朋友,可以看我之前的系列文章,http://www.cnblog ...
- TurtleBot 3 & 2i ROS开源实验平台
TurtleBot 3 & 2i ROS开源实验平台,全球更受欢迎的ROS平台. TurtleBot是ROS标准平台机器人,在全球开发人员和学生中深受欢迎.其有3个版本: TurtleBot1 ...
- 开源任务管理平台TaskManager介绍
很早之前准备写Quartz系列文章,现在终于能够实现了.从本篇开始将带你实现一款自己的任务管理平台.在工作中你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一 ...
- 开源任务管理平台TaskManagerV2.0介绍及升级说明
上一篇开源任务管理平台TaskManager介绍发布后,有网友联系我看看能不能做个后台管理界面,方便管理系统中所有的任务.由于时间和技术问题1.0版本的时候,新增了一个3分钟读取配置文件动态修改任务的 ...
- Linux开源监控平台归总
Linux开源监控平台归总 Cacti 偏向于基础监控.成图非常漂亮,需要php环境支持,并且需要mysql作为数据存储 Cacti是一个性能广泛的图表和趋势分析工具,可以用来跟踪并几乎可以绘制出任何 ...
- 【物联网】 9个顶级开发IoT项目的开源物联网平台(转)
物联网(IoT)是帮助人工智能(AI)以更好的方式控制和理解事物的未来技术. 我们收集了一些最有名的物联网平台,帮助您以受控方式开发物联网项目. 物联网平台是帮助设置和管理互联网连接设备的组件套件. ...
- 9个顶级开发IoT项目的开源物联网平台
https://blog.csdn.net/shnbiot/article/details/80432017 物联网(IoT)是帮助人工智能(AI)以更好的方式控制和理解事物的未来技术. 我们收集了一 ...
- 大数据系列之分布式计算批处理引擎MapReduce实践-排序
清明刚过,该来学习点新的知识点了. 上次说到关于MapReduce对于文本中词频的统计使用WordCount.如果还有同学不熟悉的可以参考博文大数据系列之分布式计算批处理引擎MapReduce实践. ...
随机推荐
- 《图解HTTP》学习笔记之入门
学习HTTP之前,很必要了解一下关于Web网络基础. TCP/IP协议族 1.应用层:应用层决定了向用户提供应用 服务时的通信活动,比如FTP(文件传输协议).DNS(域名系统).HTTP(超文本传输 ...
- Java 里的 for (;;) 与 while (true),哪个更快?
在 JDK8u 的 jdk 项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src$ egrep -nr "for \\(\\s?;\\s? ...
- 实验 3:Mininet 实验——测量路径的损耗率
实验目的 在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设 定:初步了解 Mininet 安装时自带的 POX 控制器脚本编写,测试路径损耗率. 实验任务 h0 向 ...
- Flutter学习二之Dart语言介绍
上次我记录了Flutter的环境搭建,这次来简单记录一下Drat语言,Flutter是 Google推出并开源的移动应用开发框架,开发语言是Dart,那么Dart语言和其他的语言在语法上有上面区别呢, ...
- 缓动公式整理(附:C#实现及WPF原版对比)
前言 缓动在动画效果中应用非常广泛,在合适的时候使用一些缓动效果会使得效果更加符合人的直观感受,简单来说,会显得更加自然. WPF提供了11种缓动效果,涵盖了大部分的使用场景.不过如果需要在非WPF下 ...
- 基础篇:深入解析JAVA异常
目录 1 异常的分类和继承关系 2 几种常见异常类的解析 3 Java异常关键字 4 开发过程处理异常注意点 5 异常和AutoCloseable(1.7-JDK的语法糖) 6 throw和throw ...
- @ComponentScan比较
ComponetScan 定义扫描规则 value:指定要扫描的包 excludeFilters=Filter[] 指定扫描的时候按照什么规则排除哪些组件. includeFilters=Filter ...
- 智能卡加密芯片SMEC90ST
深圳市中巨伟业信息科技有限公司 最新推出一款单价低,安全性高的智能卡安全芯片,产品型号为:SMEC90ST,采用32-bit ARM SC100 SecureCore Processor 安全内核处理 ...
- Docker操作命令——查看、停止、删除容器
列出所有容器 ID docker ps -aq 停止所有容器 docker stop $(docker ps -aq) 停止单个容器 docker stop 要停止的容器名 删除所有容器 docker ...
- 安卓app功能或自动化测试覆盖率统计(不用instrumentation启动app)
一文带你揭秘如何采取非instrumentation启动app,打造实时统计覆盖率,一键触发覆盖率测试报告. 在上篇文章,一文带你解决Android app手工测试或者自动化测试覆盖率统计(撸代码版) ...