下载

不同虚拟化平台的虚拟机之间进行网络通信

王一航

2018.01.25 20:49:05字数 950阅读 692

https://www.jianshu.com/p/632d91db9430


需求分析:

实现 VirtualBox 与 VMware 两者虚拟机之间的互相交流

情况一:

VirtualBox 与 VMware 的虚拟机在同一个物理机上

情况二:

VirtualBox 与 VMware 的虚拟机在不同物理机, 但是物理机在同一个网络, 要求两者能互相访问

情况三:

VirtualBox 与 VMware 的虚拟机在不同物理机, 但是物理机在同一个网络, 要求单向联通


情景分析:

情况三:

用于模拟外部网络访问内部网络的情况

可以在内网渗透的时候模拟内部网络与外部网络单向联通的情况


解决方案:

情况一:

首先介绍一个不太合适的方法, 这个方法确实能够实现需要, 但是却有可能带来潜在的威胁和问题, 该方法为将 VirtualBox 的虚拟机与 VMware 的虚拟机同时桥接到物理机所在的网络 (DHCP / 手动配置IP, 本文之后的叙述中假设默认在网络中都存在 DHCP 服务器, 不需要受手动配置 IP, 但是要知道手动配置 IP 是可行的), 带来的潜在威胁就是物理机所在的网络中的其他主机也可以直接访问已桥接的虚拟机, 不能排除有恶意攻击者的情况
另一个方法是让一个虚拟机接入虚拟机软件的 Host-Only 网络, 另一个虚拟机桥接入这个 Host-Only 网络,
比如说, VirtualBox 虚拟机接入 VirtualBox 软件在物理机上虚拟化出来的 Host-Only 网络, 然后在 VMware 中配置虚拟机接入 VirtualBox 的 Host-Only 网卡中
这种情况由于不存在和外部网络交流的功能, 因此并不存在受到来自外部攻击的可能
网络拓扑如下:

 


image.png

情况二:

两个虚拟机直接桥接至物理机的网络即可, 两者即可通过物理机上层的路由器/(交换机?)进行交流

网络拓扑如下:

 


image.png

情况三:

假设 VirtualBox 虚拟机需要放置于内部网络(VirtualBox 虚拟机上运行着一个 Web 服务), 需要让这个 VirtualBox 虚拟机隐藏在内网, 通过端口转发将这个端口暴露出来, VMware 虚拟机作为攻击者去攻击内部网络, 但是 VirtualBox 虚拟机是可以访问外部网络的
因此可以 VMware 桥接到物理网络, 而 VirtualBox 使用 NAT 网络, 将虚拟机隐藏在内网, 并配置端口转发, 将 WEB 服务转发到物理机的某个端口
网络拓扑如下:

 


image.png


具体操作:

情况一:

  1. 将 VirtualBox 虚拟机的网络模式配置为 Host-Only


image.png

  1. 将 VMware 虚拟机的网络模式配置为桥接, 桥接到 VirtualBox 虚拟机软件虚拟出来的 Host-Only 网卡

VMware 默认桥接模式是自动桥接模式, 因此需要新添加一个虚拟机的网络并指定桥接的网卡
菜单栏->编辑->虚拟网络编辑器
将其桥接到 VirtualBox Host-Only


image.png

然后将需要桥接的虚拟机的网络模式设置为桥接

 


image.png

由于 VirtualBox 的 Host-Only 会通过 DHCP 自动分配 IP , 因此配置好之后就可以互相 ping 通了


image.png

情况二:

配置 VirtualBox 虚拟机桥接到笔记本的无线网卡


image.png

配置 VMware 虚拟机桥接到笔记本的无线网卡


image.png


image.png

情况三:

  1. 配置 VirtualBox 虚拟机的网络模式为 NAT (注意 VirtualBox 有 NAT 和 NAT network 这两种网络模式, 存在区别, 参考: VirtualBox 网络配置官方文档), 并配置端口转发规则, 将 WEB 服务转发到物理机的 80 端口


image.png


image.png

  1. 配置 VMware 虚拟机的网络模式为桥接


image.png

  1. 测试效果

     


    image.png


参考文章:

http://www.sysprobs.com/setup-network-virtualbox-vmware-virtual-machines
https://www.virtualbox.org/manual/ch06.html

Brocade 12000交换机微码升级操作手册

(Brocade 12000-v5.0.5f)

一、版本升级注意事项

Brocade 12000交换机支持在线的微码升级,在版本升级时需要注意以下几点:

(1)将微码升级安排在变更时间进行。

(2)升级前需使用configupload命令备份交换机所有配置。

(3)需要主要的是,升级前需要监控服务器上两条通路的工作状况,如果有异常,需要先解决再升级微码;升级完成后,再确认一遍。

(4)在升级过程中不要断开网线。

(5)所有重启的操作都由firmwaredownload命令触发,不要手工reboot每一个CP板。

(6)目前我行Brocade 12000交换机的软件版本包括v4.2.2b、v4.4.0d、v4.4.0e、v4.4.2a,这些版本可以直接升级到v5.0.5f。

二、版本升级过程

1、确定交换机IP地址

以admin登录到交换机,运行ipaddrshow查看交换机和CP的地址(以下地址是我们的举例)。

Switch:admin>ipaddrshow

SWITCH

Ethernet IP Address: 82.0.22.197

Ethernet Subnetmask: 255.255.255.0

Fibre Channel IP Address: none

Fibre Channel Subnetmask: none

CP0

Ethernet IP Address: 82.0.22.195

Ethernet Subnetmask: 255.255.255.0

Host Name: cp0

Gateway IP Address: 82.0.22.254

CP1

Ethernet IP Address: 82.0.22.196

Ethernet Subnetmask: 255.255.255.0

Host Name: cp1

Gateway IP Address: 82.0.22.254

2、判别交换机CP的工作状态和Active/Standby CP

switch:admin> hashow

Local CP (Slot 6, CP1): Active

Remote CP (Slot 5, CP0): Standby, Healthy

HA Enabled, Heartbeat Up, HA State Synchronized

从显示结果可以看到本例中的Active CP为CP1,Standby CP为CP0(后续说明都以此为例)。如果交换机的HA显示不是Synchronized,说明CP板有问题,停止后续操作,联系厂商或服务商处理。

3、准备一个ftp服务器和ftp用户,将交换机的微码解压缩(例如将微码v5.0.5f.zip解压缩后会自动生成一个子目录v5.0.5f),将ftp的root设置为该子目录(例如d:\firmware\v5.0.5f)。

4、升级Standby CP微码

        登录Standby CP(CP0),执行命令firmwaredownload  -s

switch:admin> firmwareDownload -s

Type of Firmware (FOS, SAS, or any application) [FOS]:     *******直接回车

Server Name or IP Address: 192.168.32.10       *******输入ftp server的IP地址

Network Protocol (1-auto-select, 2-FTP, 3-SCP) [1]:2       *******输入2

User Name: user                    *******输入ftp的用户名

File Name: /release.plist          *******输入/release.plist

Password: ****                     *******输入ftp的密码

Do Auto-Commit after Reboot [Y]: y        *******输入y

Reboot system after download [N]: y       *******输入y

Firmware is being downloaded to the switch. This step may take up to 30

minutes.

Checking system settings for firmwaredownload…

5、Standby CP开始自动升级并自动重新启动。

6、登录到Active CP(CP1),运行hashow命令查看Standby CP(CP0)的启动过程。

switch:admin> hashow

Local CP (Slot 6, CP1): Active, Cold Recovered

Remote CP (Slot 5, CP0): Non-Redundant

Non-Redundant表明Standby CP(CP0)正在重新启动,等到该状态变为HA State Synchronized表明Standby CP(CP0)已经启动完毕并正常工作。

switch:admin> hashow

Local CP (Slot 6, CP1): Active

Remote CP (Slot 5, CP0): Standby, Healthy

HA Enabled, Heartbeat Up, HA State Synchronized

如果Standby CP(CP0)工作正常,继续进行后续操作。如果很长时间Standby CP(CP0)都没有进入HA State Synchronized状态,停止后续操作,联系厂商或服务商处理。

7、进行Active CP和Standby CP的切换操作

当看到Active CP和Standby CP处于同步状态后,执行CP切换命令hafailover。

switch:admin> hafailover

Local CP (Slot 6, CP1): Active, Cold Recovered Remote CP (Slot 5, CP0):

Standby, Healthy HA enabled, Heartbeat Up, HA State synchronized Warning: This command is being run on a redundant control processor(CP) system, and this operation will cause the active CP to reset. Therefore all existing telnet sessions are required to be restarted.

Are you sure you want to fail over to the standby CP [y/n]? *******输入y

此时CP0会成为Active CP,CP1会重新启动并成为Standby CP。

8、执行hashow确认Active CP和Standby CP同步后,登录到新的Standby CP(CP1)升级CP1的微码,升级完成后CP1会重新启动。

9、再次执行hashow确认Active CP和Standby CP同步后,执行firmwareshow查看两个CP的版本是否已经升级到v5.0.5f。

SFBXJSW0001:admin> firmwareshow

Slot Name     Appl     Primary/Secondary Versions               Status

———————————————————————

  5  CP0      FOS      v5.0.5f                                  ACTIVE

                       v5.0.5f                                 

  6  CP1      FOS      v5.0.5f                                  STANDBY *

                       v5.0.5f                                  

在升级完第一台交换机后,确认服务器上的通路和I/O状态正常后,升级另外一台交换机。

三、回退方案

在升级过程中如果发现问题需要回退,按以下步骤进行。

1、回退时间

在升级完第一台交换机后(没有升级第二台交换机),进行服务器上的通路和I/O确认,如果发现服务器上的链路断开,尝试用命令方式激活,如果激活失败,将第一台交换机的微码回退。

2、回退方法

回退方法同升级,将交换机的微码降级到原来的版本。

3、回退确认

在服务器上确认所有通路工作正常。

IBM 硬盘 克隆 步骤

AIX rootvg的镜像备份
在克隆过程中,系统需完成如下工作:
1.基于当前系统rootvg中内容,产生/image.data 文件.
2.使用系统中未被占用的硬盘, 创建altinst_rootvg卷组
3.创建前缀为alt_inst的逻辑卷和文件系统
4.以当前rootvg为蓝本,生成备份文件列表, 不包含在exclude.list中的文件
5.将所有文件拷到altinst_rootvg的文件系统上
6.如果指定的话,使用installp 命令在新的系统中安装系统的更新软件或新的软件包
7.使用bosboot命令在altinst_rootvg上创建引导逻辑卷
8.若有指定,执行用户的脚本程序
9.卸载文件系统, 修改altinst_rootvg上逻辑卷和文件系统的命名
10. 将引导列表改成从替换硬盘上引导.
需要bos.alt_disk_install.rte这个软件包
alt_disk_install -OCB hdisk1
这种方法克隆的盘,可以拿到不同硬件配置的机器上去用,用它进行引导时,会删除ODM库里的所有信息,重新配置所有设备信息,相当于使用克隆盘重新安装新的系统一样。

alt_disk_install -CB hdisk1
如果你是相同硬件配置的机器,则可以运行下列命令克隆而保持所有设备信息:
—————————————————————-
1、
# lspv
hdisk0          002074481b340f84                    None
hdisk1          002074484424da16                    rootvg
# alt_disk_install -CB hdisk0
Calling mkszfile to create new /image.data file.
Checking disk sizes.
Creating cloned rootvg volume group and associated logical volumes.
Creating logical volume alt_hd5.
Creating logical volume alt_hd6.
Creating logical volume alt_hd8.
Creating logical volume alt_hd4.
Creating logical volume alt_hd2.
Creating logical volume alt_hd9var.
Creating logical volume alt_hd3.
Creating logical volume alt_hd1.
Creating logical volume alt_hd10opt.
Creating /alt_inst/ file system.
Creating /alt_inst/home file system.
Creating /alt_inst/opt file system.
Creating /alt_inst/tmp file system.
Creating /alt_inst/usr file system.
Creating /alt_inst/var file system.
Generating a list of files
for backup and restore into the alternate file system…
Backing-up the rootvg files and restoring them to the alternate file system…
Modifying ODM on cloned disk.
Building boot image on cloned disk
forced unmount of /alt_inst/var
forced unmount of /alt_inst/usr
forced unmount of /alt_inst/tmp
forced unmount of /alt_inst/opt
forced unmount of /alt_inst/home
forced unmount of /alt_inst
forced unmount of /alt_inst
Changing logical volume names in volume group descriptor area.
Fixing LV control blocks…
Fixing file system superblocks…
# lspv
hdisk0          002074481b340f84                    altinst_rootvg
hdisk1          002074484424da16                    rootvg
# bootlist -m normal -o       (照例应该是默认克隆盘引导的)
hdisk1
# bootlist -m normal hdisk0 hdisk1
重起进系统后:
# lspv
hdisk0          002074481b340f84                    rootvg
hdisk1          002074484424da16                    old_rootvg
——————————————————————
如要释放老rootvg所占用的硬盘,删除其在ODM中的定义,需做如下操作:
alt_disk_install -X old_rootvg

2、
# lspv
hdisk0          002074481b340f84                    old_rootvg
hdisk1          002074484424da16                    rootvg
# alt_disk_install -W hdisk0  —->从新的备用磁盘引导后“唤醒”一个原始rootvg
Waking up old_rootvg volume group …
# lspv
hdisk0          002074481b340f84                    altinst_rootvg
hdisk1          002074484424da16                    rootvg
-W disk
用来“唤醒”卷组以在 rootvg 和备用磁盘 rootvg 间的数据存取。
注:经历“唤醒”的卷组将重命名为“altinst_rootvg”。
限制
正在运行系统的操作系统版本必须高于或等于经历“唤醒”的卷组的操作系统版本。这可能意味着有必要从“altinst_rootvg”引导并“唤醒”“old_rootvg”。

——————————————————————
3、关机,把hdisk1拔掉,hdisk0。(和插到其他新机器一样)
# lspv
hdisk1          002074484424da16                    rootvg
hdisk0          002074481b340f84                    altinst_rootvg
# bootlist -m normal -o
hdisk1
# bootlist -m normal hdisk0
# bootlist -m normal -o
hdisk0
进系统后:
# lspv
hdisk0          002074481b340f84                    rootvg
# lsdev -Cc disk
hdisk1 Defined   00-00-00-4,0 2.2 GB 16 Bit SCSI Disk Drive
hdisk0 Available 00-00-00-0,0 2.2 GB 16 Bit SCSI Disk Drive
# rmdev -dl hdisk1
hdisk1 deleted
# lsdev -Cc disk
hdisk0 Available 00-00-00-0,0 2.2 GB 16 Bit SCSI Disk Drive
(这样看上去就是习惯一点,hdisk0rootvg ,但要是hdisk1是克隆盘,插到新机器上呢?)
(重新插回hdisk1后:)
# lspv
hdisk0          002074481b340f84                    rootvg
hdisk1          002074484424da16                    old_rootvg
—————————————————————

继续(想确认下,保留的hdisk0信息如何删除,并使hdisk1开机认出来hdisk0)
# lspv
hdisk1          002074484424da16                    altinst_rootvg
hdisk0          002074481b340f84                    rootvg
# lspv -l hdisk1
hdisk1:
LV NAME               LPs   PPs   DISTRIBUTION          MOUNT POINT
alt_hd5               2     2     02..00..00..00..00    N/A
alt_hd10opt           5     5     05..00..00..00..00    /alt_inst/opt
alt_hd1               1     1     01..00..00..00..00    /alt_inst/home
alt_hd9var            3     3     03..00..00..00..00    /alt_inst/var
alt_hd6               107   107   00..107..00..00..00   N/A
alt_hd8               1     1     00..00..01..00..00    N/A
alt_hd4               2     2     00..00..02..00..00    /alt_inst
alt_hd2               105   105   00..00..104..01..00   /alt_inst/usr
alt_hd3               5     5     00..00..00..05..00    /alt_inst/tmp
# bootlist -m normal -o
hdisk0
# bootlist -m normal hdisk1
拔掉hdisk0直接插hdisk1
进系统后:
# lspv
hdisk1          002074484424da16                    rootvg
# lsdev -Cc disk
hdisk0 Defined   00-00-00-0,0 2.2 GB 16 Bit SCSI Disk Drive
hdisk1 Available 00-00-00-4,0 2.2 GB 16 Bit SCSI Disk Drive
# rmdev -dl hdisk0
hdisk0 deleted
# lsdev -Cc disk
hdisk1 Available 00-00-00-4,0 2.2 GB 16 Bit SCSI Disk Drive
和之前一样,hdisk0也一样在。但这时要把原本hdisk1变成hdisk0属于rootvg就比较麻烦了,直接改不了,又需要作一步clonemirror。(虽然这样不影响使用,但是习惯,而且也可以解决)。所以可选择做如下操作:

# lspv
hdisk1          002074484424da16                    None
hdisk0          002074481b340f84                    rootvg
# alt_disk_install -OCB hdisk1        ——>用这个方便点,但不能保存设备配置

作好插到新机器上,可能要改下启动顺序,进系统:
# lspv
hdisk0          002074484424da16                    rootvg
# ifconfig -a
lo0: flags=e08084b
        inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
        inet6 ::1/0
# lsdev -Cc disk
hdisk0 Available 00-00-00-4,0 2.2 GB 16 Bit SCSI Disk Drive
IP都可以重新配~~~
-O在目标 altinst_rootvg 上执行设备的复位。这将使 alt_disk_install 不保留任何用户定义的设备配置。如果一个或多个目标磁盘将成为不同系统的 rootvg(比如在逻辑分区或系统磁盘交换的情况下),此标志是非常有用的。
———————————————————–
另:
1、
要在从新的备用磁盘引导后,除去原始 rootvg ODM 数据库条目:
alt_disk_install -X old_rootvg
原始 rootvg 的 lspv 清单将更改至“None”。所以,新的卷组可以在那些磁盘上创建。
2、
要确定具有多个物理卷的卷组的引导磁盘:
alt_disk_install -q hdisk0说明示例
# lspv
hdisk0          00006091aef8b687     old_rootvg
hdisk1          00076443210a72ea     rootvg
hdisk2          0000875f48998649     old_rootvg
# alt_disk_install -q hdisk0
hdisk2在这种情况下,“old_rootvg”的引导磁盘实际上是 hdisk2。所以,您应将引导列表重新设置为 hdisk2,并重新引导至原始 rootvg 卷组。
3、
要修改 alt_disk_install 卷组名称:
alt_disk_install -v alt_disk_432 hdisk2说明示例
# lspv
hdisk0          00006091aef8b687     rootvg
hdisk1          00000103000d1a78     rootvg
hdisk2          000040445043d9f3     altinst_rootvg
hdisk3          00076443210a72ea     altinst_rootvg
hdisk4          0000875f48998649     None
hdisk5          000005317c58000e     None
# alt_disk_install -v alt_disk_432   hdisk2
#lspv
hdisk0          00006091aef8b687     rootvg
hdisk1          00000103000d1a78     rootvg
hdisk2          000040445043d9f3     alt_disk_432
hdisk3          00076443210a72ea     alt_disk_432
hdisk4          0000875f48998649     None
hdisk5          000005317c58000e     None
4、
要在从新的备用磁盘引导后“唤醒”一个原始 rootvg:
alt_disk_install -W hdisk0说明示例
# lspv
hdisk0          000040445043d9f3     old_rootvg
hdisk1          00076443210a72ea     rootvg
# alt_disk_install -W hdisk0
# lspv
hdisk0          000040445043d9f3     altinst_rootvg
hdisk1          00076443210a72ea     rootvg此时,“altinst_rootvg”卷组是联机的,且将安装 /alt_inst 文件系统。
5、
要将已经经历了“唤醒”的卷组“置于睡眠”:
alt_disk_install -S说明示例
# lspv
hdisk0          000040445043d9f3     altinst_rootvg
hdisk1          00076443210a72ea     rootvg
# alt_disk_install -S
# lspv
hdisk0          000040445043d9f3     altinst_rootvg
hdisk1          00076443210a72ea     rootvg“altinst_rootvg”不再处于联机状态且不再安装 /alt_inst 文件系统。如果有必要将卷组名称“altinst_rootvg”更改回“old_rootvg”,这可以通过“-v”标志来进行

Prometheus Agent部署

1 .     将agent 复制到目标服务器的/opt目录下(目录可根据需求设定)。

    解压agent:cd /opt ; unzip telegraf.zip。

2. 编辑配置文件telegraf.conf。

Command01: cd /opt/telegraf/etc/telegraf/ ;

Command02: vim telegraf.conf;

需要修改的地方目前有3处,后面随着监控指标的增加会有所增加,如下图:

调整完后保存。

3 . 启动agent查看日志;

Command01: cd /opt/telegraf/usr/bin;

Command02: ./rs_telegraf.sh start/stop/status;

4 . Prometheus添加agent;

Command:vim /opt/prometheus-2.0.0.linux-amd64/prometheus.yml

    在”TheSecondPart002″job 中添加该agent的 ip:port;

重启 Prometheus:

Command01:kill -9 `ps -wef|grep prometheus |grep -v grep |awk ‘{print $2}’`;

Command02:./start_prometheus.sh;

5 . 检查agent状态,状态为up表示正常;

AIX的rootvg两块盘同时异常

errpt的报错显示hdisk1有问题:

errpt|more

IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION

80D3764C 0619103119 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0619103119 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0619103119 P H hdisk1 DISK OPERATION ERROR

80D3764C 0619010319 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0619010319 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0619010319 P H hdisk1 DISK OPERATION ERROR

80D3764C 0619003819 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0619003819 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0619003819 P H hdisk1 DISK OPERATION ERROR

6CADB5B8 0619000119 T H sissas0 SATA ERROR

12296806 0619000119 T H sissas0 SAS ERROR

6CADB5B8 0619000119 T H sissas0 SATA ERROR

12296806 0619000119 T H sissas0 SAS ERROR

12296806 0619000119 T H sissas0 SAS ERROR

12296806 0619000119 T H sissas0 SAS ERROR

80D3764C 0618234419 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0618234419 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0618234419 P H hdisk1 DISK OPERATION ERROR

80D3764C 0618234019 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0618234019 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0618234019 P H hdisk1 DISK OPERATION ERROR

80D3764C 0618225419 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0618225419 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0618225419 P H hdisk1 DISK OPERATION ERROR

80D3764C 0618221919 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0618221919 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0618221919 P H hdisk1 DISK OPERATION ERROR

80D3764C 0618214019 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0618214019 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0618214019 P H hdisk1 DISK OPERATION ERROR

80D3764C 0618145919 U H LVDD PV NO LONGER RELOCATING NEW BAD BLOCKS

E86653C3 0618145919 P H LVDD I/O ERROR DETECTED BY LVM

747725D9 0618145919 P H hdisk1 DISK OPERATION ERROR

A924A5FC 0615111119 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED

rootvg的状态:

$ lsvg

rootvg

$ lsvg -o

rootvg

$ lsvg -l rootvg

rootvg:

LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT

hd5 boot 1 1 1 closed/syncd N/A

hd6 paging 1 3 3 open/syncd N/A

hd8 jfs2log 1 3 3 open/syncd N/A

hd4 jfs2 120 360 3 open/syncd /

hd2 jfs2 40 120 3 open/syncd /usr

hd9var jfs2 20 60 3 open/syncd /var

hd3 jfs2 60 180 3 open/syncd /tmp

hd1 jfs2 40 120 3 open/syncd /home

hd10opt jfs2 20 60 3 open/syncd /opt

hd11admin jfs2 1 1 1 open/syncd /admin

lg_dumplv sysdump 6 6 1 open/syncd N/A

livedump jfs2 1 1 1 open/syncd /var/adm/ras/livedump

fslv01 jfs2 200 600 3 open/stale /ibslog

查看lv的分布状态

$ lspv -l hdisk0

hdisk0:

LV NAME LPs PPs DISTRIBUTION MOUNT POINT

hd11admin 1 1 00..00..01..00..00 /admin

lg_dumplv 6 6 00..06..00..00..00 N/A

livedump 1 1 00..01..00..00..00 /var/adm/ras/livedump

fslv01 200 200 111..00..00..24..65 /ibslog

hd5 1 1 01..00..00..00..00 N/A

hd8 1 1 00..00..01..00..00 N/A

hd6 1 1 00..01..00..00..00 N/A

hd2 40 40 00..32..08..00..00 /usr

hd4 120 120 00..31..02..87..00 /

hd3 60 60 00..10..50..00..00 /tmp

hd9var 20 20 00..18..02..00..00 /var

hd10opt 20 20 00..00..20..00..00 /opt

hd1 40 40 00..13..27..00..00 /home

$ lspv -l hdisk1

hdisk1:

LV NAME LPs PPs DISTRIBUTION MOUNT POINT

fslv01 200 200 111..29..00..60..00 /ibslog

hd8 1 1 00..00..01..00..00 N/A

hd6 1 1 00..01..00..00..00 N/A

hd2 40 40 00..32..08..00..00 /usr

hd4 120 120 00..18..02..01..99 /

hd3 60 60 00..00..50..10..00 /tmp

hd9var 20 20 00..18..02..00..00 /var

hd10opt 20 20 00..00..20..00..00 /opt

hd1 40 40 00..13..27..00..00 /home

最初打算直接替换hdisk1,在Unmirrorvg rootvg hdisk1的时候报错了,提示有stale状态的lv,要用syncvg进行同步。但syncvg确失败了。

通过以下步骤发现hdisk0上也有stale状态的lv

$ lspv -p hdisk0

hdisk0:

PP RANGE STATE REGION LV NAME TYPE MOUNT POINT

1-1 used outer edge hd5 boot N/A

2-32 used outer edge fslv01 jfs2 /ibslog

33-33 stale outer edge fslv01 jfs2 /ibslog

34-112 used outer edge fslv01 jfs2 /ibslog

113-113 used outer middle hd6 paging N/A

114-119 used outer middle lg_dumplv sysdump N/A

120-120 used outer middle livedump jfs2 /var/adm/ras/livedump

121-133 used outer middle hd4 jfs2 /

134-143 used outer middle hd3 jfs2 /tmp

144-161 used outer middle hd4 jfs2 /

162-193 used outer middle hd2 jfs2 /usr

194-211 used outer middle hd9var jfs2 /var

212-224 used outer middle hd1 jfs2 /home

225-225 used center hd8 jfs2log N/A

226-227 used center hd4 jfs2 /

228-235 used center hd2 jfs2 /usr

236-237 used center hd9var jfs2 /var

238-287 used center hd3 jfs2 /tmp

288-288 used center hd1 jfs2 /home

289-289 used center hd10opt jfs2 /opt

290-290 used center hd11admin jfs2 /admin

291-309 used center hd10opt jfs2 /opt

310-335 used center hd1 jfs2 /home

336-422 used inner middle hd4 jfs2 /

423-446 used inner middle fslv01 jfs2 /ibslog

447-511 used inner edge fslv01 jfs2 /ibslog

512-558 free inner edge

$ lspv -p hdisk1

hdisk1:

PP RANGE STATE REGION LV NAME TYPE MOUNT POINT

1-1 free outer edge

2-112 used outer edge fslv01 jfs2 /ibslog

113-113 used outer middle hd6 paging N/A

114-114 free outer middle

115-143 used outer middle fslv01 jfs2 /ibslog

144-161 used outer middle hd4 jfs2 /

162-193 used outer middle hd2 jfs2 /usr

194-211 used outer middle hd9var jfs2 /var

212-224 used outer middle hd1 jfs2 /home

225-225 used center hd8 jfs2log N/A

226-227 used center hd4 jfs2 /

228-235 used center hd2 jfs2 /usr

236-237 used center hd9var jfs2 /var

238-287 used center hd3 jfs2 /tmp

288-288 used center hd1 jfs2 /home

289-289 used center hd10opt jfs2 /opt

290-290 free center

291-309 used center hd10opt jfs2 /opt

310-335 used center hd1 jfs2 /home

336-395 used inner middle fslv01 jfs2 /ibslog

396-435 free inner middle

436-445 used inner middle hd3 jfs2 /tmp

446-446 used inner middle hd4 jfs2 /

447-545 used inner edge hd4 jfs2 /

546-558 free inner edge

因此推测hdisk0上文件系统错误,hdisk1出现硬件损坏。

后续措施:添加新盘hdisk2,smit mirrorvg 做成1:3,在hdisk2上rmlvcopy, 除去有问题的stale状态的lv,然后migratepv把fslv从hdisk1上(为sysnc状态)移动到hdisk2,失败了。因此决定停掉业务后,进行重做文件系统。

涉及系统

此系统为负载均衡,未用到存储。

故障现象

rootvg的两块盘均出现异常,hdisk1出现物理损坏,正常状态下可以在线替换掉这块盘,然而由于hdisk0的状态为未同步,无法在线更换,需要进行停机

(需要停机时间4小时,包括进行回退所需的时间)。

受影响的目录为/ibslog,数据量约50G:

$ df -g

Filesystem GB blocks Free %Used Iused %Iused Mounted on

/dev/hd4 60.00 58.49 3% 19566 1% /

/dev/hd2 20.00 16.06 20% 59036 2% /usr

/dev/hd9var 10.00 8.45 16% 7352 1% /var

/dev/hd3 30.00 29.66 2% 431 1% /tmp

/dev/hd1 20.00 18.97 6% 6415 1% /home

/dev/hd11admin 0.50 0.50 1% 7 1% /admin

/proc – – – – – /proc

/dev/hd10opt 10.00 5.58 45% 54517 4% /opt

/dev/livedump 0.50 0.50 1% 4 1% /var/adm/ras/livedump

/dev/fslv01 100.00 52.28 48% 2781 1% /ibslog

变更步骤

备份受影响的文件系统

从其他服务器挂载nfs共享目录至server

smit nfs->Network File System.->Add a file system for mounting,将/backup挂载至server

cp -rp /ibslog /backup/ 将ibslog文件夹备份至其他服务器;

验证备份数据的大小、权限等

F5调整

停止应用

更换硬盘

收集配置

smit lv-> Show Characteristics of a Logical Volume->选择fslv01收集原有的卷组配置

除去卷组

smit lv -> remove a logical volume->选择fslv01

除去坏盘

Unmirrorvg rootvg hdisk1

Reducevg rootvg hdisk1

Rmdev Rdl hdisk1

换盘后,再cfgmgr v

添加新盘

AIX上通过diag判定DISK位置

#diag 执行命令回车

选择黑色部分

用PgDn键翻页找到Hot plug Task回车

选择黑色部分,回车

继续选择黑色部分

选择想判定位置的目标DISK,比如:hdisk1

回车,这个时候去观察硬盘,会发现硬盘的指示灯会显示”红色”,这个硬盘就是你需要判定的目标盘。

如果想把这个有故障的硬盘从SCSI剔除,用F3返回上一级菜单选择”Replace/Remove a Device Attached to an SCSI Hot Swap Enclosure Device”

光标移到hdisk1处,回车

然后拔掉故障磁盘,插上新的磁盘,执行cfgmgr –v,重新识别出新插的磁盘。

消除系统警告灯

选择黑色部分,回车

用Enter键选择黑色部分,在按F7或者Esc+7键commit

重做镜像

确认新盘hdisk0是否有PVID lspv  rootvg

hdisk0         00c3f435d0f4916c                    rootvg          active

hdisk1 00c2f65fa4a27df5 none none

上面标红的即是。

如果没有,需要手动添加:chdev -l hdisk1 -a pv=yes

HDISK1出现后, HDISK1加到ROOTVG

#extendvg rootvg hdisk1

MIRROR  mirrorvg –S rootvg (也可执行mirrorvg –c 2 rootvg 等待时间较长)

0516-1804 chvg: The quorum change takes effect immediately.

0516-1126 mirrorvg: rootvg successfully mirrored, user should perform

bosboot of system to initialize boot records. Then, user must modify

bootlist to include: hdisk1 hdisk0.

查看PV  lspv  

Hdisk0          00x9k241k2l3811n                    rootvg          active

hdisk1          00c3f435d0f4916c                    rootvg          active

HDISK0上创建boot image

bosboot –ad hdisk1

bosboot: Boot image is 51228 512 byte blocks

先确认当前启动顺序
bootlist –m normal -o

改变启动设备的顺序  bootlist –m normal hdisk0 hdisk1 cd0 

确认修改后的启动顺序
bootlist –m normal -o

后续操作:在HMC上关闭事件,系统中执行errclear 0清空相关报错。

重做文件系统

smit lv->
Add a Logical Volume然后依据之前记录的配置来重做fslv01

smit fs->
Add / Change / Show / Delete File Systems-> Enhanced Journaled File Systems->
Add an Enhanced Journaled File System on a Previously Defined Logical Volume->lv name填入fslv01,挂载点选择/ibslog,再执行mount -a,挂载文件系统。注意调整/ibslog的权限

数据恢复及验证

cp -rp /backup/ibslog/ /ibslog, 然后验证文件大小,权限,读写属性等。

启动应用、调整F5

回退步骤

本次变更前已将重要数据备份至独立的外部nfs服务器,在出现问题时可利用备份数据进行重建。如遇其他服务器硬件故障,可协调IBM原厂及时处理。

总结

ibslog这个重建后的文件系统在做mirror同步时,发现挂载的nfs共享目录(备份数据用)无法umount, fuser /nfsdir 查看进程号,发现占用此文件的进程为syncvg -v rootvg ,判断为后台做mirror时,syncvg同时锁定了rootvg,而/nfsdir是建立在根目录下,属于rootvg,从而暂时无法卸载