GPFS有两种NFS导出方式,一是Cluster Export Services (CES) NFS,二是clustered NFS (CNFS)。CNFS使用Linux内核的nfsd,提供了较好小文件操作性能,当然也只支持NFS。CES使用用户空间Ganesha的nfsd,连续读写性能较好,CES还支持SMB和Object存储。

CNFS通过动态的调整IP地址来提供NFS的HA,下面以nfs1,nfs2两个节点配置CNFS为例

  1. 确保所有服务端和客户端节点与同一个时钟源严格同步时间,服务端节点需要mmchlicense server
  2. 为了防止故障切换时出现写入问题,CNFS export共享目录的文件系统需指定syncnfs挂载选项
  3. 在每个服务端上面配置相同的/etc/exports,不同目录的fsid必须不同,不同服务端上面同一个目录的fsid必须相同
  4. 在每个服务端上面设置nfsd自动启动
  5. 定义CNFS的共享目录,最好是一个单独小的文件系统且不被NFS共享出去
  6. 每个服务端使用一个额外的静态IP(onboot=no)用于NFS共享,注意这个IP不能用于GPFS,将这个interface启动起来
  7. 在每个服务端上进行配置,ip_address_list为上面配置的专用于NFS的ip,node为这个节点在GPFS里面的主机名
  8. 查一下rpc.mountd绑定的端口号,配置上去
  9. NFS客户端挂载时需加选项 -o sync,hard,intr
  10. 测试关机、停止nfsd、停止gpfs三种情况下是否会自动切换

删除

  1. 执行 mmchnode –cnfs-interface=DELETE -N “nfs1,nfs2”

  1. 所有节点需和同一个时钟源严格同步时钟
  2. 一些文件系统操作在defaultHelperNodes上面运行,默认是所有节点,设置为NSD节点可能获得更好的性能
  3. maxMBpS是每个节点的GPFS的吞吐量,可设置为节点IO吞吐量的两倍,特别是IO节点
    1. 默认是2048;单路FDR设置1200,单路QDR设置8000,双路万兆设置5000
  4. GPFS的NSD节点如为专用IO节点,NSD节点没有数据访问则不会缓存任何数据,但是缓存可以为NSD工作线程所用,故可进行如下优化:
    1. 增加pagepool的大小
    2. 将nsdBufSpace设置为最大值(70%)
  5. 磁盘系统优化
    1. RAID segment size × 数据盘个数 = stripe size,GPFS block size应整倍数于stripe size
    2. GPFS block size应整倍数于HBA卡最大IO尺寸
    3. 最好倍数都是1
    4. /sys/block/*/queue/max_sectors_kb
  6.  存储的缓存策略
    1. 顺序IO负载:启用读缓存,禁用任何形式的预读
    2. 随机IO负载和Metadata:启用读写缓存
  7.  对于使用大量文件的GPFS节点,特别是登录节点、NFS/SMB输出节点、登录节点,可进行如下优化:
    1. 提高maxFilesToCache的值,这是缓存文件metadata的数量,最好能提高到并发打开文件数加上最近使用的文件数
    2. 在Linux上面maxStatCache是无效的,所以需要设定maxStatCache为一个较小的值,如512
    3. 按照maxFilesToCache × 3 KB + maxStatCache × 400 bytes估算内存消耗,增加的内存不在pagepool中
    4. 增加pagepool的大小,修改pagepoolMaxPhysMemPct可提高pagepool的上限
  8. 网络优化
    1. net.core.rmem_max = 8388608
      net.core.wmem_max = 8388608
      net.ipv4.tcp_rmem = 4096 262144 8388608
      net.ipv4.tcp_wmem = 4096 262144 8388608
    2. GPFS的socketMaxListenConnections和系统的net.core.somaxconn设置为集群节点数量
  9. sharedMemLimit和maxBufferDescs等看mmfsadm dump fs | head -8输出结果决定是否需要增加
  10. 文件系统的-n参数匹配集群节点数
  11. 后端由大量磁盘或固态盘组成NSD设置ignorePrefetchLUNCount=yes
  12. 用mmlsconfig和mmdiag –config可以查看配置

新机器安装系统,配置yun源、Hostname、Timezone、resolv.conf、路由和每个网卡的IP,yum upgrade,禁用SELinux和Firewall,hosts中配置本机主机名和ip,如公网网卡采取DHCP 配置中需添加PEERDNS=no 和 IPV6_PEERDNS=no

VM虚拟机中安装vmware tools,vmware-toolbox-cmd timesync status确认时间同步是否启用,vmware-toolbox-cmd timesync enable启用虚拟机和主机的时间同步

yum install rsync net-snmp-utils

重启后使用go-xcat install 自动化安装xcat

tabedit site:添加修改dhcpinterfaces、managedaddressmode、domain、master、dnsinterfaces、extntpservers;确认forwarders、nameservers。

tabedit networks:确认修改mgtifname、gateway、dhcpserver、tftpserver、ntpservers

修改/etc/resolv.conf,search为site表中的domain,nameserver为xcat自身

makedns,测试dns是否正常

修改/etc/chrony.conf,测试ntp是否正常

修改/etc/exports,限定IP地址范围

修改/etc/httpd/conf/httpd.conf,限定只监听内网的80端口

修改/etc/logrotate.conf,满足合规性要求,增加日志保留时间并启用压缩

迁移/etc/hosts.deny和hosts.all,配置只允许指定IP进行远程登录

修改/etc/postfix/main.cf中的myhostname和inet_interfaces

拷贝旧机器/install下的os image、自定义脚本等到新机器下

tabedit passwd:添加system的用户名密码,密码可以用openssl passwd -1加密

旧机器导出xCAT数据库dumpxCATdb -p /tmp/db,至少将nodelist chain bootparams nodetype mac hosts postscripts noderes nodehm osimage linuximage osdistro ipmi mp mpa等自定义表在新机器上restorexCATdb -p导入

如果需要迁移eventlog和auditlog,导入导出需添加-a参数,auditlog因为比较大导入非常慢

迁移/var/log下的日志

替换root ssh key为新的

迁移/etc/cron.d下的自定义定时任务

因原虚拟化平台设备已使用约9年,已经带病运行,且性能上已无法满足,因此购置了全新的一套设备准备替换。

首先对新平台设备进行安装调试,作为一个新的集群加入到原VCSA中。

如两个集群的存储互通,则虚拟机关机在新集群启动后,可以在线迁移存储,这样停机时间很短。如两个集群的存储不互通,则需要虚拟机关机才能迁移存储,停机时间较长。

新的集群采用了DVS,但是DVS需要VCSA才能管理,所以VC绝不能通过其自身管理的DVS进行通讯。DVS接管万兆网跑业务、vMotion、VSAN等流量,VCSA通过标准虚拟交换机用千兆网进行管理。

VCSA关机,用Client登录老集群VCSA所在ESXi导出VCSA,等完成后用Client登录新集群任意一台ESXi导入VCSA,会发现不能选择任何DVS中的端口组,只能选择标准交换机

对VMware下CentOS7虚拟机,根分区进行扩容

  1. VMware编辑虚拟机硬件,扩容硬盘1
  2. 重启虚拟机,进入救援模式
  3. fdisk,删除旧分区,原位创建新分区,并改变分区类型为8e(Linux LVM)
  4. partprobe
  5. pvresize /dev/sda3,扩充pv
  6. lvextend -l +100%FREE /dev/system/root
  7. pvs、vgs确认扩容
  8. 如果未挂载,先 mount /dev/mapper/system-root /mnt
  9. xfs_growfs /dev/mapper/system-root

用Ganglia监控一个近300个节点的集群,采样时间为默认的15s,加了一些自定义的参数,rrds目录容量74GB,12万个rrd文件。这样的一个规模下,平均每秒写入32MB、8k IOPS,平均每次写入只有4K数据,基本都是gmetad将采样的数据写入rrd文件中。这样高的IOPS对存储还是有明显的压力的,RRDtool中的rrdcached可以将对rrd的updates操作缓存到内存中然后在合并写入硬盘,显著降低了对硬盘的压力。

创建一个rrdcached的服务,编辑文件 /usr/lib/systemd/system/rrdcached.service,内容如下

  • rrdcached.sock给gmetad用的、rrdcached_limited.sock限制了可用的操作给WEB前台用
  • -b指定工作目录,-B限制在工作目录下
  • -w指定缓存时间,如果更新时发现超过本文件已经缓存了超过此缓存时间,就放到写入队列中等待写入,默认300s
  • -z指定随机延迟,每一个rrd写入时都插入一个随机延迟,此值不能比-w,默认为0
  • -f指定超时,如果rrd超过此时间还没有更新则写入硬盘

启动服务

修改 /usr/lib/systemd/system/gmetad.service ,在[Unit]和[Service]段修改和添加,并重启gmetad服务

修改前台网页的配置 /etc/ganglia/conf.php 添加一行,并重启httpd服务

 

 

以下各类版本如无特殊说明均指2017年4月时的情况。

在硬盘域中创建存储池和在存储池中创建LUN/文件系统,都不要把全部空间用尽,否则将来进行扩容等操作时可能会报错。

DIF需要在LUN映射前通过CLI开启。

在最新的V300R003C20SPC200版本中,SAN的重删压缩虽然已经与大多数增值业务不冲突了,但是仍旧和自动分层冲突,启用了重删压缩的LUN的SmartTier必须设定为不迁移。因此可以单独建立一个启用了重删压缩的LUN,并且设定好容量初始分配策略(如优先从容量层分配),这样的LUN用来做存档备份很好。重删默认不会进行逐个字节对比,压缩默认为高性能压缩算法,如需要启用逐个字节对比或高压缩率算法需通过CLI进行配置。

对于LUN

  1. show lun dedup_compress 确认LUN的ID
  2. change lun lun_id=2 dedup_enabled=yes bytecomparison_enabled=yes 打开ID为2的LUN重删逐字节比较
  3. change lun lun_id=2 compression_enabled=yes compression_method=deep 设置ID为2的LUN压缩策略为压缩率优先

对于文件系统

  1. show file_system general 确认文件系统的ID
  2. change file_system dedup_compress file_system_id=3 dedup_enabled=yes bytecomparison_enabled=yes  打开ID为3的文件系统重删逐字节比较
  3. change file_system dedup_compress file_system_id=3 compression_enabled=yes compression_method=deep 设置ID为3的文件系统压缩策略为压缩率优先

ACC重删压缩卡介入卸载CPU负载的条件是,每两分钟检查一次,如果CPU负载高于50%则卸载。

NAS不支持SmartTier,因此给文件系统存储池分配多个层级的存储介质是没有太大意义的。

此存储支持 VMware VAAI,从V300R003C20开始重删压缩LUN也支持VAAI,在ESXi的存储设备中可以看到相应的LUN硬件加速状态为支持。

VVol是VMware 6.0新的功能,让存储了解每一个虚拟机,需要eSDK Storage VASA 2.0支持,当前最新V100R005C60SPC006只支持VMware 6.0u2,存储固件只支持V300R003C00,这显然落后太多了。即便是最新尚未正式推出的eSDK Storage Plugins V200R001 1.0 RC4,VVol和vCenter的插件也只支持VMware 6.0。VVol和自动分层也是冲突的,综上故不建议使用。

vCenter的插件允许在vCenter中查看和配置存储,最新的eSDK Storage V100R005C70不支持最新的存储固件V300R003C20,只支持VMware 5.0/5.1/5.5/6.0,后面肯定是升级到eSDK Storage Plugins,故不建议使用。

华为存储有自己的多路径软件OceanStor UltraPath,需要在ESXi和VCSA上安装相同的版本,ESXi上可以通过命令行或者Update Manager安装,VCSA需要通过命令行安装,UltraPath可以查看和监控很多链路信息。但是VMware已经出6.5d了,UltraPath支持6.5的V200R001还没有正式推出(还在RC3),当前最新的V100R008C50SPC500只支持VMware 5.0/5.1/5.5/6.0,也不支持RHEL 6.9/7.3;多路径做为基本重要的服务,UltraPath和VMware的版本紧密相关,一旦VMware升级UltraPath也必须跟着升级,其过程要参考升级指导书,增加了整个系统后期的维护成本,因此不太建议使用。

使用VMware NMP多路径需要额外配置:

  1. 对于ESXi 5.5/6.0/6.5,T V1 Series, Dorado5100, Dorado2100 G2, T V2 Series, 18000 V1 Series, V3 Series系列存储,仅为双控且未来也没有扩控计划的,推荐启用ALUA,配置ESXi SATP为VMW_SATP_ALUA,PSP为VMW_PSP_RR;
  2. ESXi进入维护模式
  3. 存储端:修改每个主机的每个启动器,勾选使用第三方多路径,切换模式选择ALUA;
  4. SSH登录ESXi
    1. esxcli storage core device list 查看一下存储的Vendor和Model
    2. esxcli storage nmp satp rule add -V HUAWEI -M XSG1 -s VMW_SATP_ALUA -P VMW_PSP_RR -c tpgs_on 添加多路径规则
    3. esxcli storage nmp satp rule list | grep HUAWEI 看一下刚刚添加的规则
  5. ESXi上面修改存储的LUN多路径策略为循环
  6. 重启ESXi,确认存储LUN为VMW_SATP_ALUA和循环
  7. 退出维护模式

比如Intel J1900 四千兆的无风扇迷你电脑,AHCI(Intel Atom Processor E3800 Series SATA AHCI Controller 8086:0f23)不受ESXi支持,因此需要在ESXi的安装包中添加驱动。

准备工作:

  1. 下载安装VMware PowerCLI
  2. 下载ESXi Offline Bundle放到D:\VMware
  3. 从http://www.v-front.de/p/esxi-customizer-ps.html下载ESXi-Customizer-PS放到D:\vm
  4. 从https://vibsdepot.v-front.de/wiki/index.php/Sata-xahci下载sata-xahci Offline Bundle放到D:\vm

启动VMware PowerCLI,执行下面的命令

重启计算机,再打开VMware PowerCLI

用D:\vm下面新生成的iso安装ESXi