之前写过 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

  最近接触一台联想的高密度服务器,D2机箱里面有四个sd530节点,通过D2机箱后置的管理口登录,只能管理随机的一个节点,因为四个节点的管理IP地址都是192.168.70.125,如果通过关机等办法,也能确定每个节点,但是这样耗时耗力,也不是IT人干的事,好在D2机箱自带统一管理功能,但是出厂默认是禁用的,需要手动开启,我在这里记录下。

D2机箱的统一管理模块叫SMM,类似于刀箱Flex的CMM。

61425-hy1c8wrsu8f.png

SMM的管理协议默认是关闭的,开启它需要用到ipmitool。

有关命令如下

• 查询:

ipmitool -I lanplus -H <XCC’s IP> -U USERID -P PASSW0RD raw 0x3A 0xF1 0x00

• 启用:

ipmitool -I lanplus -H <XCC’s IP> -U USERID -P PASSW0RD raw 0x3A 0xF1 0x01

• 禁用:

ipmitool -I lanplus -H <XCC’s IP> -U USERID -P PASSW0RD raw 0x3A 0xF1 0x02

只需要用到第二条开启的命令

78905-rbw25p8s2f.png

SMM端口首次DHCP,如果 SMM 无法在2分钟内从DHCP服务器获取IP,它将使用静态IP

SMM的缺省静态IP是192.168.70.100 和flex 的CMM一样

92075-jz5ojujzve.png

浏览器中打开https://192.168.70.100

51794-3xo4vc20c62.png

更改默认密码

缺省密码复杂性规则:
• 长度至少为 10 个字符
• 必须包含至少一个数字(0 到 9)
• 必须包含以下三个类别中的至少两个类别:
– 大写字母(A 到 Z)
– 小写字母(a 到 z)
– 非字母字符,例如 !@#$%^*-_+=().:`|?"\

06896-fef8izzs83.png

登录到SMM管理界面,在这里可以很方便的打开任何一个节点的管理界面。

00477-tuau80g669.png

共有六个功能选项卡:
• Summary(摘要)
• Power(电源)
• Cooling(散热)
• System Information(系统信息)
• Event Log(事件日志)
• Configuration(配置)

79249-7pai9i3oo6v.png

一重要客户,要求投标方提供SSD做缓存加速的方案,并提供测试报告。刚开始选择INTEL CAS,客户要求是SUSE系统,而INTEL CAS从去年8月就不再更新,只能支持到SUSE 12SP3,而客户要求操作系统必须是SUSE 12 SP4,所以不得不重新选择方案。

INTEL CAS软件支持的操作系统版本:

22692-2meethye62y.png

在Linux下,使用SSD为HDD加速,目前较为成熟的方案有:flashcache,enhanceIO,dm-cache,bcache等,多方面比较以后最终选择了bcache。

bcache 是一个 Linux 内核块层超速缓存。它允许使用一个或多个高速磁盘驱动器(例如 SSD)作为一个或多个速度低得多的硬盘的超速缓存。bcache 支持直写和写回,不受所用文件系统的约束。默认情况下,它只超速缓存随机读取和写入,这也是 SSD 的强项。它还适合用于台式机、服务器和高端储存阵列

主要功能:

1,可以使用单个超速缓存设备来超速缓存任意数量的后备设备。在运行时可以挂接和分离已装入及使用中的后备设备。
2,在非正常关机后恢复 - 只有在超速缓存与后备设备一致后才完成写入。
3,SSD 拥塞时限制传至 SSD 的流量。
4,高效的写回实施方案。脏数据始终按排序顺序写出。
5,稳定可靠,可在生产环境中使用。

关于bcache的更多介绍都在这里

https://bcache.evilpiepirate.org/
https://wiki.archlinux.org/index.php/Bcache
https://www.suse.com/zh-cn/documentation/sles-12/stor_admin/data/sec_multitiercache_bcache.html

CentOS和Ubuntu都可以使用bcache。我是在suse下安装的,记录下,防止忘记。

1,配置suse 下的zypper本地安装源

zypper ar file:///yumdata local
ar :添加安装源
file:///yumdata suse安装镜像的路径
local zypper安装源的名称

zypper更多参数介绍:

lr 列出所有定义的安装源。
ar 添加一个新的安装源。
rr 删除指定的安装源。
nr 重命名指定的安装源。
mr 修改指定的安装源。
ref 刷新所有安装源。
clean 清除本地缓存。

04377-d6hy4gouqoj.png

查看zypper安装源

91835-jvw3v83pg1.png

2,安装bcache软件

zypper install bcache-tools

71845-0crdy73q3e9w.png

3,加载内核

modprobe bcache
lsmod |grep bcache

有如下输出内容,说明内核加载成功

27438-rsk9t7hln3c.png

查看当前磁盘:三个2TB HDD,一个400GB NVME SSD

31740-tkdttgv6kb.png

4,绑定SSD和HDD

bcache有两种设备,一个是backing,一个是cache,backing指的就是存放数据的后端磁盘,cache很好理解,就是高速缓存盘SSD
bcache 可以支持将用来做缓存的ssd和做数据存放的hdd一次性注册,而不需要手动连接挂载ssd和hdd

make-bcache -B /dev/sdb /dev/sdc /dev/sdd -C /dev/nvme0n1

57261-aswtdc31ev5.png

5,查看bcache相关信息

lsblk

82255-ydvgoycymgh.png

cat /sys/block/bcache0/bcache/state
no cache:该backing device没有attach任何caching device
clean:一切正常,缓存是干净的
dirty:一切正常,已启用回写,缓存是脏的
inconsistent:遇到问题,后台设备与缓存设备不同步

49969-bkys5c3wn1j.png

查看缓存数据量

cat /sys/block/bcache0/bcache/dirty_data

81559-sitz99x9c.png

查看缓存模式,默认情况下是直通超速缓存模式

cat /sys/block/bcache0/bcache/cache_mode

28766-3pbpdfh1d63.png

6,为了提高写的性能,需要修改缓存模式为写回

echo writeback > /sys/block/bcache0/bcache/cache_mode

36891-bf043px9oh8.png

7,格式化使用

mkfs.xfs /dev/bcache0
mkdir /cache
mount /dev/bcache0 /cache

8,开机自动挂载

由于bcache设备在每次重启后,N的值并不是固定的,有可能重启后,原先的bcahe0变为bcache1,而bcache1却变成了bcache0,。所以,不能将/dev/bcache作为磁盘挂载,需要使用该磁盘的UUID进行挂载,通过以下命令可以获取磁盘的UUID

blkid /dev/bcache0

00213-00fv9ya05jnnv.png

然后将uuid写入/etc/fstab 实现开机自动挂载

9,使用fio测试性能

先安装编译工具。

zypper install make gcc* kernel-devel kernel-headers

53161-nghlkwarb5h.png

下载fio 编译安装。fio下载连接:http://brick.kernel.dk/snaps/

linux-be3v:~ # cd fio-3.15/
linux-be3v:~/fio-3.15 # ./configure
linux-be3v:~/fio-3.15 # make
linux-be3v:~/fio-3.15 # make install

10,测试有缓存

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

86413-2h2uu2vtbsv.png

11,测试无缓存

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

16572-pl1767ln86.png

后附常用bcache命令

1,查看cache 缓存盘的CACHE_SET_UUID

    ll /sys/fs/bcache

2,注销缓存盘

通过缓存盘的CACHE_SET_UUID,在/sys/fs/bcache/<cset.uuid>/unregister写入1,即可进行注销

    echo 1 >/sys/fs/bcache/06e33354-7c21-4c52-990d-1a653617ab20/unregister

3,停用后端磁盘

    echo 1 > /sys/block/sdb/bcache/stop
    echo 1 > /sys/block/sdc/bcache/stop

4,把 cache 上面的数据刷到后端磁盘上面

    echo 0 > /sys/block/bcache0/bcache/writeback_percent

5,fio测试工具常用参数说明

filename=/dev/sdb        测试文件名称,通常选择需要测试的盘的data目录。
direct=1                 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite             测试随机写的I/O
rw=randrw                测试随机写和读的I/O
bs=16k                   单次io的块文件大小为16k
bsrange=512-2048         同上,提定数据块的大小范围
size=5g    本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30               本次的测试线程为30.
runtime=1000             测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync           io引擎使用pync方式
rwmixwrite=30            在混合读写的模式下,写占30%
group_reporting          关于显示结果的,汇总每个进程的信息
lockmem=1g               只使用1g内存进行测试。
zero_buffers             用0初始化系统buffer。
nrfiles=8                每个进程生成文件的数量

具体的安装过程参考联想ThinkSystem机器安装2008R2详细教程

这里强调以下注意事项:

2008R2的版本必须是SP1,在集成驱动过程中关闭所有的安全软件
此次阵列卡驱动包含730-8i 2GB 
二代处理器的性能计数器也可以正常驱动

此次驱动包适用于以下阵列卡

ThinkSystem RAID 530-8i PCIe 12Gb Adapter
ThinkSystem RAID 730-8i 1GB Cache PCIe 12Gb Adapter
ThinkSystem RAID 730-8i 2GB Cache PCIe 12Gb Adapter
ThinkSystem RAID 930-8i 2GB Flash PCIe 12Gb Adapter
ThinkSystem RAID 930-16i 4GB Flash PCIe 12Gb Adapter
ThinkSystem RAID 930-24i 4GB Flash PCIe 12Gb Adapter
ThinkSystem RAID 930-8e 4GB Flash PCIe 12Gb Adapter
ThinkSystem RAID 930-4i 2GB Flash Flex Adapter
ThinkSystem RAID 530-4i Flex Adapter
ThinkSystem RAID 530-8i Dense Adapter

安装截图如下:

36242-7mdbv2zo1p3.png

58328-fxis634b92.png

17715-nr1hiwjz8vc.png

[scode type="blue"]打赏后获取驱动,有任何问题,加我微信![/scode]

复制(Replication)是将一组数据从一个数据源拷贝到一个或多个数据源的技术。方式主要分为同步复制和异步复制:

1、同步复制:要求每一个写入操作在执行下一个操作处理之前,在源端和目标端都能完成。特点是数据丢失少,会影响生产系统性能,除非目标系统物理上离生产系统比较近。

2、异步复制:在处理下一个操作前,不等待数据复制到目标系统中。特点是复制的数据与源数据有时间差,但这种复制对生产系统性能影响较小。

在灾备方案的设计中,数据复制技术的选择关系到最终灾备效果,即RTO与RPO值的大小。根据数据复制技术在不同系统层的应用,可以分为如下五种:

此文转载自公众号:ICT_Architect

1、基于主机的数据复制技术

基于主机的数据复制是通过磁盘卷的镜像或复制进行的,业务进行在主机的卷管理器层,对硬件设备尤其是存储设备的限制小,利用生产中心和备份中心的主机系统通过IP网络建立数据传输通道,数据传输可靠,效率相对较高;通过主机数据管理软件实现数据的远程复制,当主数据中心的数据遭到破坏时,可以随时从备份中心恢复应用或从备份中心恢复数据。

基于主机的数据复制不需要两边采用同样的存储设备,具有较大的灵活性,缺点是复制功能会占用一些主机的CPU资源,对软件要求较高(很多软件无法提供基于时间点的快照功能),对主机的性能有一定的影响。

英方独有的基于操作系统层面的字节级数据捕获与复制技术在实施过程中,首先会做初始化的数据镜像,然后通过核心的复制引擎,开始旁路监听所有文件系统的写操作,例如Rename、SetAttr等,都能准确的捕获,并通过数据序列化传输技术(Data - Order Transfer,简称“DOT”)异步传输到灾备端,完成整个数据的捕获和复制过程。

81643-2mlpxdvf0n4.png

△字节级复制技术原理图

首先,字节级复制的核心引擎工作时,并没有复杂的数学运算,对生产机计算资源占用可以忽略,仅仅是旁路捕获数据。

其次,所有的数据都是从内存中捕获,并不涉及生产主机存储的读取操作,因此数据复制过程不占用主机的存储IO资源。

最后,基于字节级的数据复制粒度最小到字节,因此对于带宽资源的要求极低,是适应于异地远距离、及面向未来的混合IT环境和云化架构的一种复制方式。

2、基于应用和中间层的数据复制技术

应用层面的数据复制通过应用程序与主备中心的数据库进行同步或异步的写操作,以保证主备中心数据的一致性,灾备中心可以和生产中心同时正常运行,既能容灾,还可实现部分功能分担,但是该技术的实现方式复杂,与应用软件业务逻辑直接关联,实现和维护难度较高,并且使用应用层面的数据复制会提高系统的风险与数据丢失的风险。

独立于底层的操作系统、数据库、存储,应用可以根据需求实现双写或者多写,从而实现主本和多个数据副本之间的数据复制功能。这种由应用实现的技术,可以在中间件或者应用平台层面进行封装和实现,对上面的应用透明,也可以在应用层面实现。

其主要优势是可根据需求定制、可实现应用和数据库层面的复制;主要不足是目前市场上没有成熟、适合传统IT企业大规模推广使用的中间件产品。如果完全由应用封装平台或者应用来实现,代码的复杂程度提高,增加了应用的维护成本。

3、基于数据库的数据复制技术

基于数据库软件的复制技术包括物理复制和逻辑复制两种方式。

逻辑复制是利用数据库的重做日志、归档日志,将主本所在站点的日志传输到副本所在站点,通过重做SQL的方式实现数据复制。逻辑复制只提供异步复制,主副本数据的最终一致性,无法保证实时一致性;

物理复制不是基于SQL Apply操作来完成复制,而是通过redo log日志或者归档日志在副本站点的同步或者异步持久化写来实现复制功能,同时副本站点的数据可以提供只读功能。

开放平台数据库复制技术则是一种基于数据库log(日志)的结构化数据复制技术,它通过解析源数据库在线log或归档log获得数据的增、删、改变化,再将这些变化应用到目标数据库,使源数据库与目标数据库同步,以达到多站点间数据库可双活甚至多活,实现业务连续可用和容灾的目的。

44201-k1ngvkpta0o.png

△数据库日志分析技术

基于数据库的数据复制是对数据库记录级别、表级别容灾高可用的基础技术,英方数据库容灾技术结合了主机复制和数据库日志分析的优点,提高了系统应用的灵活性,可实现数据库应用多活,同时也极大减少了数据库应用的增量数据传输。在细粒度数据容灾、广域云化容灾领域仍然具有广阔的应用前景。

数据库语义级的实时数据同步,在数据库正常使用时,自动完成源端到备端数据的初始化全量复制,并实时监控及同步复制增量数据,其正常流程的状态转换及条件如下:

38867-ez2mnu98up6.png

英方i2Active便是基于redo log日志分析技术的Oracle数据实时复制工具,具有简单灵活、高性能、非侵入、低影响、低于秒级延迟,低成本的特点,部署和使用也非常简便。能够帮助用户在复杂的应用环境下完成Oracle容灾备份、数据迁移、业务数据分发、构建大型数据仓库等技术数据整合等工作。

08611-53aj8hsnhd2.png

△Active数据库语义级复制

4、基于存储系统网关的数据复制技术

存储网关位于服务器与存储之间,是构架在SAN网络上的专用存储服务技术。这项技术基于存储虚拟化技术。

存储虚拟化的直接定义:在存储设备中形成的存储资源透明抽象层,即存储虚拟化是服务器与存储间的一个抽象层,它是物理存储的逻辑表示方法。其主要目的就是要把物理存储介质抽象为逻辑存储空间,将分散繁杂的异构存储管理整合为统一简单的集中存储管理,将人们所面对的众多存储问题,由繁化简(其中包括存储的读写方式、连接方式、存储的规格或结构等),由散化整(存储管理)的过程就是存储虚拟化。

存储网关通过对于进入的IO数据流提供各类数据存储服务,大幅提升了在服务器或者存储层面难以达到的灵活性、多样性、异构化等多种存储服务能力。利用存储网关,对于后端的存储数据可以提供远程数据复制、异构化存储融合、存储设备高可用镜像、快照服务、数据迁移服务甚至于部分存储网关可以提供精准的持续数据保护连续数据恢复服务。

由于存储网关卸载了服务器和阵列的复制工作负载,它可以跨越大量的服务器平台和存储阵列运行,因而使它成为高度异构的环境下的容灾技术的理想选择。另外,由于带宽优化、数据恢复精细化等方面独有的优势,这项技术也成为比较主流的一种灾备技术。

这项技术主要争论点在于性能保障能力的发展程度。近年来,随着SAN应用的不断普及,SAN网络中由异构存储设备和爆炸式增长的数据量所带来的管理复杂性、资源利用率低、存储设备自身数据服务能力低等问题促进了存储网关的发展和应用。

5、基于存储介质的数据复制

通过存储系统内建的固件或操作系统、IP网络或光纤通道等传输介质连结,将数据以同步或异步的方式复制到远端,从而实现生产数据的灾难保护。

采用基于存储介质的数据复制技术建设容灾方案的特点主要是对网络连接及硬件的要求较高。基于存储的复制可以是“一对一”复制方式,也可以是“一对多或多对一”的复制方式,即一个存储的数据复制到多个远程存储或多个存储的数据复制到同一远程存储,而且复制可以是双向的。

存储复制技术使基于实现存储磁盘阵列之间的直接镜像,通过存储系统内建的固件(Firmware)或操作系统,利用IP网络或光纤通道等传输界面连结,将数据以同步或异步的方式复制到远端。当然,一般情况下这种模式,必须同等存储品牌并且同等型号的存储系统控制器之间才能实现,配备低延迟大带宽也是必要条件之一。

在基于存储阵列的复制中,复制软件运行在一个或多个存储控制器上,非常适合拥有大量服务器的环境,原因如下:

独立于操作系统;能够支持Windows和基于Unix的操作系统以及大型机(高端阵列);许可费一般基于存储容量而不是连接的服务器数量;不需要连接服务器上的任何管理工作。

由于复制工作被交给存储控制器来完成,在异步传输本地缓存较大的时候可以很好的避免服务器的性能开销过大的问题,从而使基于存储阵列的复制非常适合关键任务和高端交易应用。

综述

在实际工作中,并不能说哪类技术就一定优于另一类技术,优势永远是一个相对的概念,在实际应用中,企业需要选择更加适合自身业务场景的技术路线,毕竟只有适合的,才是最好的。

一,VMware Horizon View 的内部版本号和版本对应关系

二,NVIDIA虚拟GPU软件支持的GPU列表

三,Dell 服务器 ESXi返回/无法初始化nvml:未知错误 NVIDIA GPU

四,Horizon系列之安装配置CentOS7虚拟桌面

五,Horizon系列之安装配置Ubuntu18虚拟桌面

六,Horizon系列之CentOS虚拟桌面安装配置VGPU

七,Horizon系列之Ubuntu虚拟桌面安装配置VGPU

八,VGPU License服务器高可用部署方案详细教程

九,Horizon系列之安装配置Windows Server 2016 RDS桌面

十,NVIDIA VGPU软件功能参数对比

十一,Horizon系列之替换各组件自签名SSL证书

做完horizon桌面以后,在仪表板中的系统运行状态里会有提示,连接服务器的ssl证书无效。

如果需要更换vSphere自带的SSL证书看这里VMware之使用自签名证书替换vSphere各组件自带SSL证书

10712-zn8wqsvpvl9.png

如果安装了安全服务器,也会有提示

58441-olrwiejx28q.png

如果配置了事件数据库,在事件日志中也会有相应的提示

53438-78rvlvr6x64.png

这里可以使用域证书服务来解决这个问题。

一,安装配置CA服务器

安装一台Windows server 2016虚拟机,更改主机名,然后加域,也可以直接在域控中安装证书服务。

59588-761h5wdvlhk.png

1,安装域证书服务

服务器角色中选择Active Directory证书服务,下一步

28611-gm9jyhwau18.png

角色服务中选择证书颁发机构证书颁发机构Web注册,下一步,直至安装完成

89955-g1ptt0fkr3b.png

在服务器管理中打开配置证书服务

05630-rysvaplqz4.png

选择证书颁发机构证书颁发机构Web注册(选择web注册是为了方便后面通过网页申请证书),下一步

53407-9xfkvnvh6rh.png

选择企业CA,下一步,选择根CA

16295-xyqn9rdzl9.png

选择创建新的私钥

06433-gdxsviurb9p.png

密钥长度2048

37664-kl817rutgq.png

其他默认即可,下一步直至安装完成。

08268-xj5dq11hv3p.png

二,配置CA模板

1,在服务器管理器中,打开证书颁发机构,右键单击证书模板,单击管理,打开证书模板控制台

78273-5xrcyfnyw4a.png

右键单击Web 服务器,选择复制模板

11620-jpa3iray69.png

2,单击常规选项卡,在模板显示名称字段中,输入 Horizon 作为新模板的名称。

67816-1714mu9b203.png

3,单击兼容性选项卡,证书颁发机构选择Windows Server 2016,证书接收人选择Windows 7 / Server 2008 R2,如果是其他版本的服务器,根据真实情况选择即可。

84561-6shbo1l2jld.png

3,单击请求处理选项卡。勾选允许导出私钥

54346-3h69xc1pwkl.png

如果ca服务器是单独的虚拟机,则

4,单击安全选项卡,分别选中Authenticated UsersAdministrator,确保勾选写入注册权限

Authenticated Users

84117-9m4cljt2dg.png

Administrator

82762-f3rfgme847.png

5,右键单击证书模板,选择新建,点击要颁发的证书模板

40166-91d8d7cmop.png

6,选中新建的模板Horizon,单击确定。

61423-6sya65mmkt6.png

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]