2019年9月

  联想的DE系列存储配置非常简单,和以前的ibm ds系列配置方式一样,并且现在加入了web界面,还是中文,简直就是即点击用的设备。可见联想为了方便用户做了多少优化工作。即便是这样简单,但是还是有人一直在找教程,这里写一下,方便大家。

Linux下交互式多路径自动化配置脚本发布

一、初始化存储

1,连接存储
使用网线将控制器 A 端口( P1 )连接到笔记本电脑的以太网端口,笔记本配置以下地址
IP 地址: 192.168.128.100
子网掩码: 255.255.255.0
[scode type="yellow"]备注:根据固件版本配置相应网段,如果不知道固件版本,先配置成192段,尝试长ping。不通再配置为169段。联想改IP换logo,还是很拿手的![/scode]

对于固件版本11.50和更早版本:
控制器1(端口1):IP地址:192.168.128.101
控制器1(端口2):IP地址:192.168.129.101
控制器2(端口1):IP地址:192.168.128.102
控制器2(端口2):IP地址:192.168.129.102

对于固件版本11.60及更高版本:
控制器1(端口1):IP地址:169.254.128.101
控制器1(端口2):IP地址:169.254.129.101
控制器2(端口1):IP地址:169.254.128.102
控制器2(端口2):IP地址:169.254.129.102

68360-bhrbx55hi1o.png

在浏览器中输入:https://192.168.128.101 输入自定义的用户名及密码,然后点击设置密码。

72030-n3ffer5pt4o.png

2,填写基本信息

23797-e38vdmsumya.png

可以后面自行配置池

92477-i63koonpaci.png

一直下一步即可

06853-ae3b8xlk28f.png

二,配置存储

1,配置池或阵列

59469-57coyuux7hj.png

de系列存储支持Dynamic Disk Pools (DDP)功能,这个功能类似于IBM v系列存储的分布式raid,但是又有区别。

池类似卷组,但具有以下区别:

a,池中的数据随机存储在池中的所有驱动器上,而卷组中的数据则不同,存储在同一组驱动器上。
b,如果驱动器出现故障,池的性能降级程度更低,重建时间更短。
c,池有内置保留容量,因此不需要专用热备用驱动器。
d,池允许将大量驱动器组合到一起。
e,池不需要指定的 RAID 级别。
f,池最少需要11块硬盘,最大可以192。
g,池的磁盘利用率比卷组低,磁盘利用率70%

A,选择创建池。填写池的名称,池的选项已经根据配置自动列出可配置选项,直接选择即可,根据需求选择相应数量磁盘的池,为了演示后续操作,我这里选择13个磁盘的池,点击创建

38703-mie0zf9v9k.png

点击左边菜单栏的存储-池和卷组,13个驱动器的池已经建好

85436-q8nu6vhvzef.png

在此界面中看到有一个保留容量的标签,保留容量是为帮助解决潜在的驱动器故障而在池中保留的容量(驱动器数量)。创建池时, System Manager 将自动保留缺省的保留容量,具体容量取决于池中的驱动器数。如果已使用所有可用容量创建卷,则可能无法增加保留容量,除非通过添加驱动器或删除卷来向池中添加容量。

如果觉得池的磁盘利用率比较低,可以选择卷组

B,选择创建卷组。填写名称,选择RAID级别,卷组的选项也根据存储的配置列出一些可选的选项,根据需求自行选择,为了演示后续操作,我这里选择15个磁盘的卷组,点击创建

65736-4vs2qh9vigc.png

点击左边菜单栏的存储-池和卷组,15个驱动器的卷组已经建好

50002-oghgjg2i8go.png

2,创建工作负载

工作负载是支持应用程序的存储对象。可为每个应用程序定义一个或多个工作负载或实例。对于某些应用程序, System Manager 将工作负载配置为采用具有类似基础卷特征的卷。这些卷特征根据工作负载支持的应用程序类型进行优化。应用程序特定的工作负载的卷特性指示工作负载如何与存储阵列的组件交互,有助于确定给定配置下环境的表现。例如,如果创建支持 Microsoft SQL Server 应用程序的工作负载,然后为该工作负载创建卷,则会优化基础卷特征以支持 Microsoft SQL Server。

点击左侧菜单栏的存储-卷,单击创建,选择工作负载,工作负载中自带很多模板,根据需求选择相应的模板即可,如果没有找到,选择Other application,填写名称,单击创建

26746-oahjh6wctvo.png

3,创建卷

点击左侧菜单栏的存储-卷,单击创建,选择卷,稍后分配主机

84605-299gp9pmyiy.png

点击下一步,选择之前创建好的工作负载

53170-gm4h56oio4r.png

点击下一步,单击添加新卷

96441-857x6bg1i1g.png

填写卷名称,卷容量,根据需求选择段大小,单击下一步,点击完成

36441-mk24m1sk699.png

4,新建主机

de系列存储的基本端口默认为fc模式,如果插了fc模块,则直接可以识别hba卡,如果需要iSCSI,则需要转换端口协议,转换步骤看后面的教程。

34887-43kkcyf46v7.png

点击左侧菜单栏的存储-主机,单击创建,选择主机。填写主机名称,选择相应的主机操作系统类型,添加主机端口wwpn,这里是fc连接,会自动弹出hba卡的wwpn,单击创建

13184-t91zdjhr34f.png

在新的版本微码中,还需要选择主机接口类型,才能填写主机端口

56156-pqgnd3h7ao.png

如果主机操作系统类型不正确,或者多路径配置不合适,会报如下错误

18900-1hjolbn2o0z.png

5,映射卷

接上一步,选中新建的主机,点击分配卷,选中已经建立的卷,点击分配

72520-1gclxatldjg.png

在主机端扫描磁盘,会发现多出几个20M的卷,这是de系列为了实现带内管理自动分配给主机的,即便不映射主机,也会有这个20m分区,如果不需要带内管理,可以取消。

46852-myisde77ivr.png

选中创建的主机,点击取消分配卷,弹出对话框中提示:如果继续,将失去任何带内管理功能,除非已为另一主机分配访问卷。选中Access 卷,输入取消分配,点击取消分配

43381-ma41095ev7.png

三,进阶配置

1,配置热备盘

点击左侧菜单栏的硬件,显示存储架正面磁盘示图,阵列成员盘,以浅蓝色显示,未使用磁盘以灰色显示,单击灰色的硬盘,选中分配热备用驱动器

36041-7k4b028lncl.png

选择 是

86853-qpscfw3qlx.png

2,扩容

a,扩容池或卷组

点击左侧菜单栏的存储-池和卷组,选中现有池或者卷组,单击添加容量,选择没有使用的磁盘,点击添加,扩容卷组的时候,一次最多可以选择2块硬盘

15714-3fkfqtrggu2.png

13个磁盘的池,此时扩容成16个磁盘

37939-a2qbnuod5tf.png

b,扩容卷

点击左侧菜单栏的存储-卷,选中现有卷,单击增加容量,选择是

55470-o7if8mk6kcd.png

输入要增加的容量,点击增加

47876-luqnet4rlch.png

c,在主机端扩容即可,Linux下只有lvm支持扩容

3,更改管理地址

点击左侧菜单栏的硬件,点击显示存储架背面,单击控制器A,点击配置管理端口

39346-wcilmavj8ni.png

选择端口P1,下一步,继续下一步,输入IP地址信息,下一步,直至完成

79710-wqpmbj3giak.png

4,更改存储主机接口协议

de系列支持以下型号列出端口更改协议,HIC 端口协议设置仅适用于16Gb FC/10GbE HIC(选件部件号:4C57A14366)

18589-u7b8aoc3jyr.png

10259-p9n4sxsrwj.png

73172-sb7l2x6uta.png

12881-eec24gp1qy.png

65846-law8gincfec.png

根据上表确定要更改的端口

此处我以更改HIC端口为例,在更改之前全部都是fc模式

49234-6cq9zvt1f4y.png

点击存储管理界面的设置-系统,下拉至加载项,在更改功能包菜单下,复制功能启用标识代码

31480-jonjdgmd2ua.png

登录https://fod.lenovo.com/lkms

点击存储主机协议更改,选择存储机型,选择要转换的功能特征,填入机器序列号,在Safe ID or Feature Enable Identifier中粘贴上一步复制的功能启用标识,单击继续,直至提示许可申请成功,在邮件的附件中把许可下载到本地

98854-muorgwsoosn.png

返回至管理界面,点击更改功能包菜单,单击浏览,选择下载的许可文件,输入更改,单击更改,更改之后会重启,等待即可。

重新连接以后,端口协议更改完成,HIC端口变成10gbiSCSI模式

29483-7aoekx8my9j.png

5,SSD读缓存配置

由于我配置的这台存储没有ssd,这里我截图说下步骤

a,创建hdd容量层的池或者卷组,然后创建卷
b,创建SSD卷组
c,选中需要加速读缓存的卷,点击查看/编辑设置,单击高级标签,拉至最下,勾选启用固态硬盘高速缓存

39456-1886vugnaq6.png

配置以后,点击SSD磁盘组,会显示已经关联的用来加速的卷

03727-o68a81lemr.png

6,升级微码

先下载对应的控制器微码和驱动器微码,点击管理界面左侧菜单支持-升级中心,先升级ThinkSystem SAN OS 软件,点击开始升级,弹出的界面中,选择下载好的ThinkSystem SAN OS 软件文件和控制器 NVSRAM 文件,并勾选现在传输文件,但不升级(稍后激活升级),点击开始

59138-lg7rjirplz.png

弹出确认对话框

08587-tudro7ekvt.png

进行升级前的健康检测

29236-rrnigs8euvl.png

开始升级

45268-4zex0ljya8o.png

传输完成

16707-k3imn43mjqs.png

确认传输无误,点击激活

26374-3ax7hrj5lft.png

确认激活

66781-960r5t4hmxe.png

升级成功

48032-48oop65o9p6.png

升级驱动器微码,在升级中心中点击开始升级,升级驱动器固件微码。弹出对话框,选择下载好的驱动器微码,点击下一步

26887-n67wrjjjz1.png

出现两种升级选择,联机和脱机

联机
如果池或卷组支持冗余,并且状态为“最佳”,则可使用联机方法升级驱动器固件。联机方法将存储阵列处理 I/O 期间 将固件下载到使用这些驱动器的关联卷。无需停止对使用这些驱动器的关联卷的 I/O。将把这些驱动器一次一个升级到与驱动器关联的卷。如果未将驱动器分配给池或卷组,则可通过联机或脱机方法更新其固件。使用联机方法升级驱动器固件时,系统性能可能会受到影响。

脱机
如果池或卷组不支持冗余(RAID 0),或者已降级,则必须使用脱机方法升级驱动器固件。仅当已停止 I/O 活动时,脱机方法才会将固件升级到使用这些驱动器的关联卷。必须停止对使用这些驱动器的关联卷的所有 I/O。如果未将驱动器分配给池或卷组,则可通过联机或脱机方法更新其固件。

70550-t7g5dasn409.png

根据存储环境选择相应的升级方案,因为我当前存储的硬盘微码已经是最新了,所以就没法升级了。

附Linux下多路径配置参数

devices{
device {
       vendor                  "LENOVO"
       product                 "DE_Series"
       product_blacklist       "Universal Xport"
       path_grouping_policy    group_by_prio
       features                "2 pg_init_retries 50"
       path_checker            rdac
       path_selector           "round-robin 0"
       hardware_handler        "1 rdac"
       prio                    rdac
       failback                immediate
       rr_weight               priorities
       no_path_retry           30
      }
}

  客户采购200台联想服务器,现在需要安装系统, 一台一台的用优盘安装,显然不是最佳办法,PXE安装肯定是首选,但是还是得一台一台配置阵列,这样,明显效率不高。我百度、谷歌了下,发现pxe下可以配置阵列,但是都比较复杂,大致思路都是先用一个类似于live os引导进去,先执行相应的命令,然后再重启。再次引导pxe 进行安装,这显然也很麻烦,我整理了一套非常简单的方法。

原理:利用kickstart文件中的pre执行命令,在安装前调用阵列卡的配置程序,用命令配置阵列。配置完阵列,然后安装系统,都不用重启,也不用引导精简版的Linux。

安装PXE服务器的文档,充斥在全网的各个角落,我就不写了,我这里只贴出我的配置文件作为参考

1,dhcp配置文件

option space PXE;
option PXE.mtftp-ip    code 1 = ip-address;
option PXE.mtftp-cport code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option client-system-arch code 93 = unsigned integer 16;
allow booting;
allow bootp;
default-lease-time 3600;
max-lease-time 21600;
subnet 192.168.70.0 netmask 255.255.255.0{
    range 192.168.70.10 192.168.70.200;
    option routers 192.168.70.1;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.70.2;
if option client-system-arch = 00:07 or option client-system-arch = 00:09 {
filename "uefi/bootx64.efi";
} else {
filename "pxelinux.0";
}
}
}

2,kickstart配置文件

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use network installation
url --url="http://192.168.70.1/centos76/"
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard 'us'
# System language
lang zh_CN.UTF-8
#config raid
%pre
wget http://192.168.70.1/rdconfig/rdconfig.sh
cp rdconfig.sh /tmp/
chmod a+x /tmp/rdconfig.sh
/tmp/rdconfig.sh
sleep 12
%end
# Network information
network  --bootproto=dhcp --onboot=on --noipv6
network  --hostname=server
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $6$sgwDN64lfSiJ2b01$Q3k/pI26guRqkmTu14gn1T6auyqYSPTvxQJUValIdAQv7eHEiXbjjBgpMahTJbUCr1sGC3sq0DQnTPp985IUd1
# System services
services --enabled="chronyd"
# System timezone
timezone Asia/Shanghai
user --name=admin --password=$6$Co8MpRTqRc1LZ2CY$hWwoGvJ1xzFmYDPeZPTx9HIY/zrXpud6LMRLYfbg..RhMSYybpB8Y2Pz/qRlu4MOl3Q1h68OSfFsXnP.eTU6Z. --iscrypted --gecos="admin"
# X Window System configuration information
xconfig  --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot/efi --fstype="efi" --ondisk=sda --size=500 --fsoptions="umask=0077,shortname=winnt"
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.168 --fstype="lvmpv" --ondisk=sda --grow --size=1
volgroup centos --pesize=4096 pv.168
logvol swap  --fstype="swap" --size=20480 --name=swap --vgname=centos
logvol /  --fstype="xfs" --size=204800 --name=root --vgname=centos
logvol /data  --fstype="xfs" --name=data --vgname=centos --grow --size=1
#Accept license
eula --agreed
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony
kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
#config yum
%post
wget http://192.168.70.1/script/script.sh
cp script.sh /tmp/
chmod a+x /tmp/script.sh
/tmp/script.sh
rm -fr /tmp/script.sh
%end

3,rdconfig配置文件 配置raid

wget http://192.168.70.1/rdconfig/storcli /
sleep 3
cp /storcli /usr/bin
chmod +x /usr/bin/storcli
sleep 3
storcli /c0 add vd type=raid5 size=all names=raid5 drive=62:0-6
sleep 3
storcli /c0/e62/s7 add hotsparedrive

4,自动配置yum脚本

#!/bin/bash
#mount nfs
mkdir /yumdata
mkdir /tmp/nfs
mount -t nfs 192.168.70.1:/iso /tmp/nfs
cp -vr /tmp/nfs/centos76/* /yumdata
#config yum
cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak
> local.repo
cat >> local.repo << "EOF"
[local]
name=local
baseurl=file:///yumdata
enabled=1
gpgcheck=0
EOF
umount /tmp/nfs

5,grub.cfg 配置文件

set default="0"
function load_video {
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set timeout=10
### END /etc/grub.d/00_header ###
search --no-floppy --set=root -l 'CentOS 7 x86_64'
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Install CentOS 7.6' --class fedora --class gnu-linux --class gnu --class os {
    linuxefi uefi/vmlinuz inst.repo=http://192.168.70.1/centos76/ inst.ks=http://192.168.70.1/kscfg/ct76ks.cfg 
    initrdefi uefi/initrd.img
    }

备注:配置阵列的命令中用到的eid 和sid 需要提前查看。配置好脚本,服务器开机等着就行,kickstart还能干更多的事,来简化配置工作。

  之前写过ontap下配置cifs/smb。LenovoNetapp ONTAP Select系列教程(四)之配置SMB/CIFS

  这是在webui下进行配置的过程,web下配置cifs/smb,必须要有域控,否则不让下一步。ontap有了域控加持,使用和管理都更加方便。但是有些客户,就只是想简单的通过IP访问nas,也没有域环境,此时ontap配置cifs共享时就显得不人性化,好在可以使用命令创建WORKGROUP下的cifs/smb。

1,创建聚合

aggr create aggr0_data_node1 -diskcount 11 -node DM5000H-01 -raidtype raid_dp
aggr create aggr0_data_node2 -diskcount 11 -node DM5000H-02 -raidtype raid_dp

30379-vkbdltgist.png

2,配置SVM

在console下配置SVM,命令看着非常长,其实都是按tab键补出来的,看单词也能明白其中的作用

vserver create -vserver SVM_CIFS -subtype default -rootvolume svm_root -aggregate aggr0_data_node1 -rootvolume-security-style ntfs -language C.UTF-8 -snapshot-policy default -foreground true

07556-1yk6vruy8m9.png

在浏览器中也可以查看创建好的SVM

32940-dqrsdmddaxo.png

提示没有配置CIFS服务

65805-k8dd4nfmme.png

3,配置CIFS服务器

vserver cifs create -cifs-server CIFS_Server -workgroup WORKGROUP

49522-807x35jepso.png

浏览器中查看cifs服务器

45197-k02kokfvad.png

78466-908eu9x2ft.png

4,创建数据网络Failover Group,我这是的ontap select下创建的,如果是DM系列存储,自行根据硬件端口创建

network interface failover-groups create -vserver SVM_CIFS -failover-group data_failovergroup -targets DM5000H-01:e0a,DM5000H-02:e0a
network interface failover-groups show

91962-wcvcl6o8jn8.png

5,创建数据LIF接口

network interface create -vserver SVM_CIFS -lif CIFS_LIF -service-policy default-data-files -role data -data-protocol cifs -home-node DM5000H-01 -home-port e0a -address 192.168.80.125 -netmask 255.255.254.0 -status-admin up
network interface show

81438-zzvwe7tbyjb.png

浏览器中查看lif接口

66594-lvv1xgjtuze.png

查看cifs服务器状态

92178-a9wxkhpt2mg.png

6,创建卷

volume create -volume DATA_CIFS -aggregate aggr0_data_node1 -size 100g -state online -policy default -unix-permissions ---rwxr-xr-x -type RW -snapshot-policy default -foreground true -tiering-policy none

25682-pvw52cldi5q.png

33143-v7swoa8mrwb.png

7,挂载卷

volume mount -volume DATA_CIFS -junction-path /DATA_CIFS -active true -policy-override false -vserver SVM_CIFS

61738-7ghgmgno4qn.png

28322-d9k5dq8ucn.png

8,创建共享

share create -share-name DATA_CIFS -path /DATA_CIFS -share-properties oplocks,browsable,changenotify,show-previous-versions -symlink-properties symlinks -offline-files manual -vscan-fileop-profile standard -max-connections-per-share 4294967295 -force-group-for-create "" -vserver SVM_CIFS
share show

86175-hug0jo37dvv.png

55186-2yrtsej7cps.png

9,配置访问权限

导航到SVM-SVM设置-主机用户和组-windows-用户,点击administrator账户,单击编辑,取消禁用此账户,点击修改

60659-vgn9l9wb2yd.png

继续单击administrator账户,单击设置密码,设置访问密码

39162-m0n4px3k1tr.png

也可以单独创建用户

30259-f5qhpja1lvp.png

10,访问cifs/smb共享文件夹

资管管理器中输入\\192.168.80.125

03425-te88a2z62dn.png

68042-tymf3gv8wsk.png

88097-x6xyzrunbaj.png

32236-0ba6jo1vl79l.png

  之前写过 Linux下bcache安装测试的文章 Linux下SSD缓存加速之bcache试用,还是那个重要客户,要求横向对比ssd缓存加速的方案,客户特别钟情于intel cas,但是cas不再更新,无法支持SUSE 12SP4,而cas从去年开始已经开源,我在suse 12sp4 下编译测试开源open cas的时候,出现很多问题,经多方辗转,联系到了intel 官方人员,配合联想后台实验室的高级工程师,共同在suse 12 sp4下编译了open-cas软件,我在这里记录下,防止忘记。

open-cas开源项目地址:https://github.com/Open-CAS/open-cas-linux

在suse 12sp4下正常使用cas 需要升级内核,默认自带的内核不具备cas 所使用的头文件

1,升级内核

内核下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/

此次下载linux-4.14.125,选用编译安装升级方法

11580-pjvcmuoijh.png

安装升级内核所需的工具

zypper in make gcc* kernel-devel kernel-headers openssl-devel ncurses-devel git-core

将下载的 kernel 源码包拷贝到/usr/src/目录,解压
cd 进入到解压后的目录
将原本 kernel 的 config 文件拷贝到当前目录

cp /boot/config-xxxxxxx-default .config

执行make menuconfig在弹出界面先 load 刚刚拷过来的 .config,然后 save(熟悉kernel 编译的话也可以根据需要调整相关的参数后再 save),然后 exit,exit

22723-2pimo6tl04z.png

执行make -j8 (本次测试用的服务器 lscpu 看到的 cpu 核心数为8,如果不加-j 参数的话使用单线程编译,会很慢)

编译完,然后执行下面的命令

make modules
make modules_install
make install

执行完上述命令以后,重启即可

查看编译好的内核,已经升级到4.14.125

98716-qzc8487vbhd.png

2,编译安装open-cas

git clone https://github.com/Open-CAS/open-cas-linux
cd open-cas-linux
git clone https://github.com/Open-CAS/ocf.git
./configure
make -j8

67401-jdkqdy7mlk.png

编译的结果正常,没有任何报错

68983-ydfzccny1a.png

make install

06401-r4j7bkib2oc.png

根据报错提示,把编译好的 cas_cache.ko cas_disk.ko 两个驱动文件拷到对应的目录,并赋予执行权限

cp modules/cas_cache/cas_cache.ko /lib/modules/4.14.125-94.41-default/
cp modules/cas_disk/cas_disk.ko /lib/modules/4.14.125-94.41-default/
cd /lib/modules/4.14.125-94.41-default/
chmod +x cas_disk.ko cas_cache.ko

37647-tuhc8q4wfji.png

再次make install,编译安装成功

47126-gfkyduisvw4.png

open-cas版本信息

08278-aatxq31zv5o.png

3,配置open-cas

有两种配置cas 的方式,一种是手动,需要手动输入命令,另一种是自动配置,即开机自动初始化cas。

A,手动配置

先查看casadm 帮助命令

61479-p4jfxwff9z.png

查看磁盘

79025-jvhmte30c8.png

nvme作为缓存,sdb作为数据盘,open-cas方案中,缓存盘是cache,数据盘是core

配置缓存盘

casadm -S -i 1 -d /dev/nvme0n1 -c wb

上述命令是把/dev/nvme0n1这块SSD作为cas缓存实例id为1的缓存盘,cache-mode是write-back

29468-0fp4ohvzfpl.png

casadm -A -i 1 -d /dev/sdb

上述命令是把/dev/sdb这块数据盘添加到实例id 为1的cas 缓存下

81906-8fq8pox3jow.png

查看当前配置好的缓存实例

79392-6m836zme0cl.png

继续添加一块数据盘

casadm -A -i 1 -d /dev/sdc

40807-32730yrxzto.png

查看当前缓存实例的运行状态,可以查看缓存命中率,以及缓存中的数据量

casadm -P -i 1

62033-8l2cqpz5flt.png

10046-bzbmdsp3h2a.png

查看当前磁盘分区结构,使用也很简单,格式化cas1-1 cas1-2即可,然后挂载。

82097-jug32jgxscn.png

70584-kbtvcpetacd.png

fio 测试结果,性能提升的数据相当漂亮

fio -filename=/dev/cas1-1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest

04908-p03y4kauozn.png

上述的使用过程都是手动创建,服务器重启以后配置就会丢失,如果需要开机自动配置且配置不丢失则需要配置cas 的全局配置文件

B,开机自动配置

查看磁盘wwn id

ll /dev/disk/by-id

99679-sh6hhjapoe.png

cd /etc/opencas
ls

59242-veu7r9o29dc.png

vi opencas.conf

83553-lr1q8yun38.png

casctl init 初始化cas,提示下面的报错信息,经查证,得知需要python3.6.7及以上的版本,而系统自带的是3.4.6

62084-e20bxdkv6x.png

升级系统默认自带的python3到python3.6.9

先编译安装python3需要的zlib文件

linux-strt:~ # 
linux-strt:~ # cd zlib-1.2.11/
linux-strt:~/zlib-1.2.11 # ./configure
linux-strt:~/zlib-1.2.11 # make
linux-strt:~/zlib-1.2.11 # make install
linux-strt:~/zlib-1.2.11 # 

然后编译安装python3.6.9

mkdir /usr/local/python369
tar -zxvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --prefix=/usr/local/python369
make
make install

备份系统自带的python3,然后链接新的文件

mv /usr/bin/python3 /usr/bin/python3.bak
ln -s /usr/local/python369/bin/python3 /usr/bin/python3

81280-qjs8rd3kt5a.png

继续初始化casctl init

73797-403cdub6x9n.png

参考链接:https://open-cas.github.io/guide_installing.html

  DM系列存储OEM netapp 的FAS系列,而netapp 的FAS系列采用的ONTAP包括来自Berkeley Net/2 BSD Unix,Spinnaker Networks技术和其他操作系统的代码。要玩转ontap,得掌握相关的命令,目前在浏览器GUI中的配置功能,已经完全可以满足大部分客户对存储的需求,除个别配置外。

Linux下交互式多路径自动化配置脚本发布

本章内容以配置FC-SAN为主,如果要配置其他功能,点击下面的连接即可

(一),NFS

(二),SMB/CIFS

(三),ISCSI

(四),快照及克隆

一,前期准备及注意事项

(1)FC(含FCoE)不支持直连,必须有SAN交换机,iSCSI可以直连

(2)聚合成员盘必须在同一个控制器,即node1的所属硬盘只能在一个聚合里,node2的所属硬盘在另一个聚合,如果盘的数量较少,可以将硬盘全部归属到某一个控制器,提高磁盘利用率

(3)每个控制器的0c0d是同一芯片,0e0f是同一芯片,如果需要做静态绑定或者LACP绑定,则0c0e一组,0d0f一组

二, 存储初始化

1,硬件安装

线缆连接,要点如下:

(1) Switchless cluster随机带两根0.5米DAC线,连接两个节点e0a <-> e0a, e0b <-> e0b (下图中绿色线);
64682-nhwf9fkd4t.png

(2) 无扩展柜随机带两根0.5米SAS线,需要将两节点SAS口交叉连接,0a <-> 0b, 0b <-> 0a(下图中黄色线,注意交叉)

46354-f7377l3bzz.png

(3) 有扩展柜的情形根据扩展柜和SAS口的数量连接,下面以DM5000H为例,只有一个stack,更多SAS口可以设置更多stack;
扩展柜连接原则是,

a) 高可用,每块磁盘连接至不同node;

b) 一致性,从不同node看到的磁盘ID(stack.shelf.bay)相同

57261-krr7sp2kj5.png

如果有扩展柜,需要设置磁盘柜序号,长按前面板按钮,设置磁盘柜序号,如果多个磁盘柜号码相同,系统在显示磁盘时,磁盘柜部分将以序列号显示。

2,集群初始配置

使用存储包装箱自带的micro USB连接线,连接笔记本电脑和存储的节点,确保驱动安装正常,我测试了智能手机的数据线也可以正常使用

99413-c6roqexk4a.png

波特率及数据位、停止位参数如下:

21940-rylmcv8811s.png

3,扩展柜SAS连线检查,如果没有扩展柜,则不需要此步

使用micro USB逐个连入节点,用户admin,使用halt命令分别在两个节点停止系统。

*> halt -node localhost

17261-4dfoq099c52.png

在loader中选择进入maintenance mode

LOADER-A> boot_ontp maintenance

启动过程中看系统提示,如果另一个节点没有停止,系统会警告不要做更改,接受并进入maintenance mode

maintenance mode内查看磁盘柜连接和磁盘情况,主要目的是确认磁盘状态正常,SAS线连接正确。

检查磁盘状态,下面显示DD为空,检查是否所有已安装磁盘都可见,如下图,我配置的这套存储有控制器和扩展柜,控制器满配24块硬盘,扩展柜加了6块硬盘

*> sasadmin shelf

40916-hz4puvr1yjo.png

在一个节点看到的磁盘连接,每块盘应当分别连接A,B端口。

*> storage show disk -p

36755-69f5qzelpx4.png

在另一个节点看到的磁盘连接,每块盘也应当分别连接A,B端口。

退出maintenance mode,

*> halt
LOADER-A> boot_ontap

4,在一个节点创建集群

首次开机将进入配置向导提示输入yes,如果没有,可执行

cluster setup

68322-764dmf1v2w8.png

管理端口选默认的e0M,直接回车即可,然后设定节点管理地址。

98147-4vc24vlflv7.png

此时已经可以切换到GUI了,为了叙述方便,后面仍使用CLI操作,回车

Otherwise, press Enter to complete cluster setup using the command line
interface:

第一个节点选择create创建集群

Do you want to create a new cluster or join an existing cluster? {create, join}:
create

如果不是single node配置,选择no

Do you intend for this node to be used as a single node cluster? {yes, no} [no]:

保留这些默认地址,尤其是在switchless配置下,这些地址只在内部可见,记录这些地址,后面另一节点加入集群时需要
Existing cluster interface configuration found:

Port    MTU     IP              Netmask
e0a     9000    169.254.67.248  255.255.0.0
e0b     9000    169.254.241.66  255.255.0.0

Do you want to use this configuration? {yes, no} [yes]:

12646-sxde933s0og.png

设置管理口令

Enter the cluster administrator's (username "admin") password:

Retype the password:

输入集群名字,起一个含义清晰地名字,特别是有集群间复制的情况下,用cluster01之类的容易混淆。

Step 1 of 5: Create a Cluster
You can type "back", "exit", or "help" at any question.

Enter the cluster name: DM5000H

Creating cluster DM5000H

Starting cluster support services .

Cluster DM5000H has been created.

21384-xzgn9hvta9p.png

输入license,目前联想配置的设备默认已经提供了license,可跳过,后面也可在图形界面输入。

Step 2 of 5: Add Feature License Keys
You can type "back", "exit", or "help" at any question.

Enter an additional license key []:

设置集群管理SVM,输入集群管理地址,建议设在e0M上,也可以在数据端口上。

Step 3 of 5: Set Up a Vserver for Cluster Administration
You can type "back", "exit", or "help" at any question.

Enter the cluster management interface port: e0M
Enter the cluster management interface IP address: 192.168.70.120
Enter the cluster management interface netmask: 255.255.255.0
Enter the cluster management interface default gateway [192.168.70.1]:


A cluster management interface on port e0M with IP address 192.168.70.120 has been created.  You can use this address to connect to and manage the cluster.

05784-4aayxdyw5mw.png

Enter the DNS domain names:

存储的failover将在另一节点加入时打开

Step 4 of 5: Configure Storage Failover (SFO)
You can type "back", "exit", or "help" at any question.


SFO will be enabled when the partner joins the cluster.

设置设备地点

Step 5 of 5: Set Up the Node
You can type "back", "exit", or "help" at any question.

Where is the controller located []: LZU


Cluster "DM5000H" has been created.

To complete cluster setup, you must join each additional node to the cluster
by running "system node show-discovered" and "cluster add-node" from a node in the cluster.

To complete system configuration, you can use either OnCommand System Manager
or the Data ONTAP command-line interface.

To access OnCommand System Manager, point your web browser to the cluster
management IP address (https://192.168.70.120).

To access the command-line interface, connect to the cluster management
IP address (for example, ssh admin@192.168.70.120).

10818-dbrh1w1uagh.png

至此创建集群完成

5,将其它节点加入集群

用microUSB 连接另一节点,同样启动配置向导,或输入cluster setup启动

输入第二个节点的管理地址

Enter the node management interface port [e0M]:
Enter the node management interface IP address: 192.168.70.122
Enter the node management interface netmask: 255.255.255.0
Enter the node management interface default gateway: 192.168.70.1
A node management interface on port e0M with IP address 192.168.70.122 has been created.

Use your web browser to complete cluster setup by accessing
https://192.168.70.122

12499-thne67yo8n.png

此时已经可以使用GUI,为了叙述和配置方便,继续使用CLI

Otherwise, press Enter to complete cluster setup using the command line
interface:

This node's storage failover partner is already a member of a cluster.
Storage failover partners must be members of the same cluster.
The cluster setup wizard will default to the cluster join dialog.

选择加入

Do you want to create a new cluster or join an existing cluster? {join}:
join

接受默认地址,特别是switchless配置下

Existing cluster interface configuration found:

Port    MTU     IP              Netmask
e0a     9000    169.254.102.208 255.255.0.0
e0b     9000    169.254.253.172 255.255.0.0

Do you want to use this configuration? {yes, no} [yes]: yes


Step 1 of 3: Join an Existing Cluster
You can type "back", "exit", or "help" at any question.

输入在上一个节点记录的其中一个IP地址

Enter the IP address of an interface on the private cluster network from the
cluster you want to join: 169.254.67.248

Joining cluster at address 169.254.67.248

Checking cluster applications .......

This node has joined the cluster DM5000H.

44804-k5v70d1z5cl.png

存储failover打开

Step 2 of 3: Configure Storage Failover (SFO)
You can type "back", "exit", or "help" at any question.


SFO is enabled.


Step 3 of 3: Set Up the Node
You can type "back", "exit", or "help" at any question.


This node has been joined to cluster "DM5000H".

To complete cluster setup, you must join each additional node to the cluster
by running "system node show-discovered" and "cluster add-node" from a node in the cluster.

To complete system configuration, you can use either OnCommand System Manager
or the Data ONTAP command-line interface.

To access OnCommand System Manager, point your web browser to the cluster
management IP address (https://192.168.70.120).

To access the command-line interface, connect to the cluster management
IP address (for example, ssh admin@192.168.70.120).


Notice: HA is configured in management.

34679-z2boldzgxu.png

至此,节点加入完成

6,调整磁盘归属(通常仅限DM3000H或DM5000H)

默认的两个控制器各一半硬盘,配置聚合,先选择扩展柜的SATA硬盘

35694-2egg5a0u9fa.png

提示无法创建raid

60486-l4zdh3g4qei.png

storage disk show -partition-ownership

6个大盘分布在两个控制器

13033-hjucadccxze.png

把所有的大盘都归属到node1

先进入advanced 模式,

set advanced
storage disk assign -disk 1.1.0 -owner DM5000H-01

会提示disk1.1.0已经有所属控制器。加-force即可

storage disk assign -disk 1.1.0 -owner DM5000H-01 -force
storage disk assign -disk 1.1.1 -owner DM5000H-01 -force
storage disk assign -disk 1.1.2 -owner DM5000H-01 -force
storage disk assign -disk 1.1.3 -owner DM5000H-01 -force
storage disk assign -disk 1.1.4 -owner DM5000H-01 -force
storage disk assign -disk 1.1.5 -owner DM5000H-01 -force

93054-tdfvx33wnbp.png

此时所有的大盘都归属到node1

然后返回到admin模式

set admin
storage disk show -partition-ownership

56247-8guyqsm0z2.png

86774-6govd732kuv.png

7,创建聚合

返回gui界面,导航到聚合菜单,重新创建聚合,node1拥有6个sata硬盘,此时可以创建raid

28128-izq38j1y44a.png

依次创建聚合,我这里有三个,两个控制器各一个,扩展柜一个。

10392-w1be2fp4x0m.png

50073-rxspgsnta9f.png

8,更改数据端口协议

DM出厂默认数据端口为融合网络模式,如果需要iSCSI或者NAS,直接插网络模块即可,如果需要FC,则要转换端口协议

转换协议之前需要将相应的端口禁用,每个控制器的0c0d是同一芯片,0e0f是同一芯片,转换0c协议时会提示一起转换0d,同样,转换0e时会同时转换0f,IP模式和fc模式可以共存,但是为了控制器的HA,建议把每个控制器同一芯片下的端口转换为统一的数据协议。这里只转换两个控制器的0c和0d

fcp adapter modify -node DM5000H-01 -adapter 0c -status-admin down
fcp adapter modify -node DM5000H-01 -adapter 0d -status-admin down
fcp adapter modify -node DM5000H-02 -adapter 0c -status-admin down
fcp adapter modify -node DM5000H-02 -adapter 0d -status-admin down

转换数据端口为fc模式

system node hardware unified-connect modify -node DM5000H-01 -adapter 0c -mode fc
system node hardware unified-connect modify -node DM5000H-02 -adapter 0c -mode fc

91679-tpfh2bbb1h.png

重启节点,使其更改生效

system node reboot -node DM5000H-01
system node reboot -node DM5000H-02

把禁用的端口启用

fcp adapter modify -node DM5000H-01 -adapter 0c -status-admin up
fcp adapter modify -node DM5000H-01 -adapter 0d -status-admin up
fcp adapter modify -node DM5000H-02 -adapter 0c -status-admin up
fcp adapter modify -node DM5000H-02 -adapter 0d -status-admin up

更改完端口可以查看端口当前模式

system node hardware unified-connect show -node DM5000H-01 0c
system node hardware unified-connect show -node DM5000H-02 0c

如果需要将端口转换为IP模式,则输入下面的命令

system node hardware unified-connect modify -node DM5000H-01 -adapter 0c -mode cna
system node hardware unified-connect modify -node DM5000H-02 -adapter 0c -mode cna

9,创建SVM

导航到SVM菜单,填写SVM名称,选择数据协议,选择新建SVM所在的根聚合,点击提交并继续

99248-137ig3k76stm.png

在配置FC/FCoE协议窗口中,勾选 为FC配置数据 LIF,每个节点的LIF数根据情况自定义,我这里每个控制器只用了一个端口,则这里填1,点击提交并继续

66628-e7i7713l8f.png

在SVM管理界面,跳过即可

18727-pyd5r3ipgl.png

确保SVM的FC协议下的数据LIF端口都是已启用的状态

33051-5tg8pf7d7rj.png

10,创建卷

导航到卷菜单,在SVM下拉菜单中选择之前创建的SVM,单击创建,输入名称,已经卷大小,点击创建

18425-wrw0wx4c12.png

依次创建三个聚合下的卷

51969-gw6b4iotvca.png

11,创建端口集

导航到LUN菜单下,在SVM下拉菜单中选择之前创建的SVM,单击端口集,点击创建

输入名称,类型选择FC/FCoE,然后勾选相应的数据端口,然后单击创建

17712-72yrtr6koju.png

12,创建启动程序组

点击启动程序组,单击创建,输入名称,选择操作系统类型,在端口集中选择上一步创建好的端口集

10309-ay00p0cpryi.png

点击启动程序标签,添加主机HBA卡的wwpn

80716-tuz0xifon99.png

13,创建LUN

点击LUN管理,单击创建,输入名称,大小,点击下一步

63139-49efbwltk.png

在LUN容器窗口中,点击浏览,为此lun选择第10步创建好的卷,单击下一步

76928-sq2bkdjon5m.png

勾选映射,点击下一步

67035-rfvomwgjadf.png

依次创建已有卷的LUN

76460-bci2w3llfjr.png

14,然后在主机端扫描磁盘

95559-97yb686zkcr.png

15,配置服务管理地址

system service-processor network modify -node DM5000H-01 -address-family IPv4 -enable true -ip-address 192.168.70.123 -netmask 255.255.255.0 -gateway 192.168.70.1
system service-processor network modify -node DM5000H-02 -address-family IPv4 -enable true -ip-address 192.168.70.124 -netmask 255.255.255.0 -gateway 192.168.70.1

这个功能类似于服务器的硬件后台管理BMC,但是只有cli console,如果不配置,会有以下报错提示

02539-0kvypxveu6v.png

也可以直接在浏览器GUI界面中配置地址

27076-mspj43qr12r.png

三,删除集群恢复出厂设置及重新导入许可

此操作为可选项,在没有数据或者确定可以删除集群的情况下进行。

通过串口线登录任意一个节点,ctrl+G切换到BMC,输入

system power off

然后

system power on
exit

此时节点ontap会重新启动,出现Ctrl—C信息提示时,按ctrl+c 进入启动菜单

64023-bc4g98jsm5t.png

输入数字5,进入维护模式,此操作只需要在一个节点执行即可,

02292-8emy9juaogo.png

输入下面的命令

storage release disks

输入yes

58183-3usntwl8ie8.png

然后输入halt,随后输入boot_ontap,在ontap启动过程中继续按ctrl+c进入启动菜单,选择4

29656-2n0bkb0utkv.png

清除配置及零化硬盘,输入两次yes

用串口线登录另一个节点,ctrl+g切换到BMC下,输入system power off,然后输入system power on,然后输入exit,出现ctrl+c提示时,按ctrl+c进入启动菜单,直接输入4,然后回车,输入两次yes清除配置。

DM出厂默认自带四种授权许可(NFS/CIFS/ISCSI/FCP),如果恢复出厂设置,则连许可都删除,新建集群以后,无任何许可,无法使用任何功能,

78861-rk7z7vr86z.png

此时需要恢复许可,登录联想的fod网站,登录账号

https://fod.lenovo.com/lkms/angular/app/pages/index.htm#/welcome

点击恢复历史,在搜索类型*中选择通过机器类型序列号搜索历史,在搜索值*中填写机器的MT和SN组合,点击继续

61698-4k9a4b6e15b.png

在结果栏中显示机器自带的8个许可文件,每个控制器4个,选择前两个授权文件,

53550-flshynwhvf.png

点击电子邮箱,邮箱会收到授权许可

27142-d3z63yxi4iw.png

在浏览器GUI中依次添加8个许可,或者在CLI 中使用命令license add 依次添加许可

四,测试HA

在第6步的时候,我把扩展柜的6块硬盘全部归属到了node1,把node1关机,看看什么情况

22020-t95tp7wdxko.png

所有的大盘自动归属到node2

55221-gzefbzmn8qd.png

SATA硬盘的聚合也迁移到node2

43756-mjikzlbu4w8.png

开启node1节点

98817-k4x0rhddacs.png

待HA归还完毕,所有硬盘自动归还,归属到主所有者node1

95961-8531lmezbqp.png

五,附常用初级命令:

查看集群状态: cluster show
查看集群HA状态:cluster ha show
查看节点状态: node show
查看系统状态:health status show
查看系统版本:version
查看镜像:system node image show
查看序列号: node show -fields serialnumber
查看许可:license show
设置时区:timezone Asia/Shanghai 
设置时间:date
设置NTP服务器: cluster time-service ntp server create -server 192.168.70.1
查看NTP服务器: cluster time-service ntp server show
设置DNS:  dns create -vserver <vserver> -domains <domain> -name-servers <DNS IP>
查看DNS: dns show
查看集群网络配置:network interface show
查看集群网络端口状态: network port show
查看网络路由:network route show 
查看SVM: vserver show 
查看聚合: aggr show
查看卷:volume show 

  经常遇到IBM存储扩容案例,但是在浏览器中的GUI界面无法直接扩容,无法扩容的原因很多,盘的数量,raid级别等其他因素。

06963-mgs2b3bm66.png

6块硬盘做raid6 扩容原有池(因为要扩容原有的卷,必须扩容原有池)

64002-7yh6jok2h3h.png

并没有出现要扩容的目标池

97328-zaddpv08uu.png

gui下无法扩容,在命令下可以做到,新版本的微码会提示找不到命令,在下面的命令前面加svctask(更改配置)或者svcinfo(查看信息)即可

1,先查看池名称,浏览器中也可以看

lsmdiskgrp

2,查看新加硬盘的id,即管理界面中硬盘的驱动器标识

lsdrive

08265-875xc9kpaq9.png

3,确定池名称,以及新加硬盘的id后就可以用命令扩容池

mkarray -level raid6 -drive 3:15:16:17:18:19 mdiskgrp0

有时候会提示CMMVC6532E的错误信息:由于没有足够的可用内存用于该I/0组,无法启动该命令

此时扩大阵列的位图空间即可

chiogrp -feature raid -size 128 0

然后重新做阵列

mkarray -level raid6 -drive 3:15:16:17:18:19 mdiskgrp0

46778-w98cyjr7p.png

回到浏览器管理界面,池已经扩容成功

68162-ia6ils5eukk.png

此时可以扩容卷了

93449-xr7t3xp2ys.png