exalogic

虚拟化Exalogic当中,如何去理解HA和Distribution group

在使用和维护虚拟化的Exalogic当中,我们需要理解虚拟机的两个特性:HA和Distribution group。

什么是HA和Distribution group?

我们为什么需要使用HA和Distribution group?

如何配置HA和Distribution group?

为什么有时在EMOC当中会出现违反Distribution group的警告?

我们将在这篇blog当中来一一阐述。

什么是HA和Distribution group?

HA: 全称是High availability,即高可用性。

Distribution group:中文名称就是分布式组,属于emoc中用户(vDC -> Account)的属性。

我们为什么需要使用HA和Distribution group?

我们为什么需要虚拟机具有HA的功能呢?

因为我们需要保证在出现下面的情况下,虚拟机可以自动的运行在其它的计算节点上面:

a. 当运行虚拟机的计算节点出现物理故障而导致宕机时。

b. 当计算节点重启的时,由于物理资源的限制(内存和CPU),虚拟机不能运行在之前运行的计算节点时

关于HA,我们另外需要注意的有两点:

第一,具有HA功能的虚拟机发生重启或crash时,虚拟机仍然会在之前运行的计算节点上面重新启动。

第二,具有HA功能的虚拟机发生重启或crash时,如果一个Server pool中所有的计算节点都无法满足虚拟机运行所需要的资源,那么虚拟机将会重启失败。

我们为什么需要Distribution group?

在解释为什么需要Distribution group之前,我们首先来看一个场景。

假定我们有一套八分之一配的虚拟化Exalogic环境,Cloud User A需要创建两个虚拟机来部署中间件产品Weblogic。这两个要创建的虚拟机可能运行在两台不同的计算节点上面,也可能会运行在同一台计算节点上面。

在通常的情况下,我们可以不用考虑要创建的虚拟机运行在哪个计算节点上面,因为EMOC会为我们选择一个最优的方案。但是,在很多情况下,我们需要保证创建的虚拟机运行在不同的计算节点上面。还是上面例子,两台创建成功的虚拟机上面需要运行两个Weblogic实例,并且组成一个cluster来对外提供服务。这样,我们就需要保证这两台虚拟机运行在两台计算节点上面。

在虚拟化Exalogic中,什么功能可以保证创建的虚拟机运行在不同的计算节点上面?没错,就是Distribution group!

如何配置HA和Distribution group?

在创建虚拟机的时候,HA功能默认是选择的,如下图:

如何判断一个虚拟机是否具有HA功能呢?

如果是这在运行的虚拟机,我们可以通过emoc  –>  vDC Management –> <Account_name> –> 虚拟机名称 右边的属性来查看。如下图,如果‘Enable vServer HA’为灰,那么这个虚拟机是具有HA功能的。

如上图中的‘Disable vServer HA’为灰,那么这个虚拟机的HA功能是关闭的。

而当一个虚拟机是关闭的时候,我们就无法通过上面的办法来验证了。这时我们需要通过虚拟机的配置文件vm.cfg中的参数‘OVM_high_availability’来判断,命令如下:

grep -i ‘OVM_high_availability’ vm.cfg

如果‘OVM_high_availability = False’,那么这个虚拟机的HA功能是关闭的;如果‘OVM_high_availability = True’, 那么这个虚拟机的HA功能开启。

上面讲完了HA,下面我们来讲如何来创建Distribution group

第一步,选择需要创建Distribution group的Account,在最右侧的‘Action’面板中选择“Create Distribution Group”并点击,如下图:

第二步,填写Distribution group的名称(必填项)以及描述信息,如下图:

第三步,指定Distribution group中可容纳成员的数量

注意

建议设置的最大值为整个Exalogic包含计算节点的总数。这样,在这个Distribution group下面的虚拟机将会在不同的计算机上面启动。

虽然最大值可以多于Exalogic包含计算节点的总数,但是我们不建议这么做。

第四步,确认信息和创建。

为什么有时在EMOC当中会出现违反Distribution group的警告?

这篇文档的最后,我们来看一个在EMOC中常见的警告,通过这个警告信息来了解为什么有些时候vServer的HA和Distribution group功能会产生冲突,警告信息如下:

Incident repeated X times : Distribution group: <my_dist_group> is violated. Misplaced vServers: vserver1, vserver2, vserver3, vserver4, vserver5, vserver6, vserver7, vserver8 (117957)

 

上面的警告信息表明:启动了的客户虚拟机违反了Distribution group的原则。比如,vServer1,vServer2,vServer3和vServer4这四个虚拟机属于Weblogic-DG这个Distribution group,但是存在两个或多于两个虚拟机运行在同一个计算节点上面。

Exalogic中,HA是OVM功能,而Distribution group是EMOC的功能。由于EMOC本身是构建在OVM之上,因此,如果不是通过EMOC上来停止和启动虚拟机话的,都有可能会违反Distribution group的规则。比如下面的情况:

  1. 计算节点重启或宕机
  1. 虚拟机出现Crash
  2. 通过OVMM界面,shutdown或xm destroy等命令重启虚拟机

在这种情况,计算节点上面的具有HA功能的虚拟机会重新在这个OVS Pool中的其它计算节点上面重新启动(我们假定其它计算节点有足够的CPU和内存资源来容纳虚拟机)。如果在重启的计算节点上面存在同一个Distribution group的其它虚拟机,我们就违反了EMOC中定义的Distribution group规则。

参考资料:

http://www.ateam-oracle.com/exalogic-virtual-tea-break-snippets-creating-and-using-distribution-groups

https://docs.oracle.com/cd/E18476_01/doc.220/e25258/proc.htm#ELCLD77351

Frequently Asked Questions About Exalogic Enterprise Manager Ops Center (EMOC) Distribution Groups (Doc ID 2013039.1)

 

Oracle一体机SR-IOV技术运用

现今,在x86体系架构下,有三种常见的网络I/O虚拟化方式:

  •     基于虚拟化软件(比如OVM用到的Xen)方式的I/O共享
  •     直接设备指派
  •     基于硬件的SR-IOV(Single-Root I/O Virtualization)

基于软件方式的I/O共享

这是人们最常想到的,也是现今基于x86体系架构商业化虚拟化产品最常用到的方式。服务器虚拟化软件(Hypervisor, 比如Xen)位于虚拟机操作系统设备驱动器和实际的服务器硬件之间。简单说,虚拟机操作系统设备驱动器需要先与虚拟化软件交互,然后虚拟化软件再与底层的物理硬件交互来完成I、O操作。这种方式的好处是允许在多个虚拟机之间共享同一个物理设备。因为虚拟化软件使虚拟机操作系统相信他们拥有自己的硬件设备,而实际上他们是共享了同一个物理设备。虚拟化软件完成所有这些工作 – 管理冲突,确保所有虚拟机并发访问I/O设备,确保稳定运行。这种方式的缺点是虚拟化软件是以牺牲一定的性能来提供该功能的:虚拟化层至少需要一些时间来处理流量控制和I/O转换。来自于虚拟机的并发I/O操作越多,虚拟化软件会越忙碌,这会对系统的稳定性造成潜在的影响。虽然随着现今虚拟化软硬件的发展,基于软件方式的I/O共享对系统的性能和稳定性影响很小,但是在一些对系统性能有着极端高度要求的场景下,这种方式对性能的影响还是显而易见的。

直接设备指派

不同于基于软件的I/O共享 – 每个虚拟机与虚拟化软件直接通讯,然后虚拟化软件再与物理硬件设备通讯,直接设备指派方式允许虚拟机操作系统直接访问物理I/O设备硬件,不需要先通过虚拟化软件。这种方式清除了虚拟化软件层面造成的性能瓶颈和潜在的不稳定性,通过将I/O设备直接指派给一个虚拟机,确保虚拟机能够获得可预期的和稳定的I/O性能,就如同裸机操作系统访问自己的设备一样。使用这种方式的缺点是由于虚拟化层被略过,导致虚拟化软件无法完成虚拟化I/O的功能,也就是实现多个虚拟机共享一个I/O设备。如果你有一个物理机只有两个网卡,你最多在上边只能跑两个虚拟机, 每个虚拟机给指派一个网卡,这种方式不是很经济。

理想的解决方案是提供一种方式,既能实现虚拟机共享同一个物理I/O设备, 也能实现像直接设备指派方式那样提供高性能, 高稳定性的I/O方式。而SR-IOV就是为了实现这种功能,并引入到Oracle使用虚拟化的一体机系统中。

Single-Root I/O Virtualization

SR-IOV是基于硬件的I/O虚拟化解决方案,提供更高的I/O性能和可扩展性。SR-IOV需要硬件的支持,通过在网卡上定义多个轻量级的VF(Virtual Function), 然后将VF指派给虚拟机,可以实现虚拟机绕过虚拟化软件直接访问网卡,同时又共享同一个物理网卡设备。

SR-IOV是一种新的业界标准,PCI-SIG 组织负责定义和维护SR-IOV 规范,可以通过如下网址访问:

http://www.pcisig.com.

在SR-IOV设备中,有两种功能(Function )类型:

  • Physical Function (PF)

       PF具有完整的PCIe功能, 能够被发现,管理和操作,就像操作任何其他普通PCIe设备一样。PF拥有完整的配置空间。可以通过PF来配置和控制PCIe设备,PF拥有完整的能力将数据从PCIe设备移入和移出。每一个PCIe设备可以有一个到最多八个PF。每个PF是独立的,而且从软件的角度看,每个PF就是一个独立的PCIe设备。

  • Virtual Function (VF)

       VF是一个轻量级的PCIe function,仅用于将数据移入和移出设备。每一个VF与一个底层的PF关联,每个PF可以有0个或多个VF。VF通过PF来创建。每一个VF可以指派给一个虚拟机, 从虚拟机的角度来说一个VF就是一个本地的物理网络设备。

所以通过SR-IOV,在硬件网络I/O设备层面实现在一个物理设备创建出多个虚拟设备(VF),每一个VF指派给一个虚拟机,虚拟机在直接访问VF的时候,就相当于直接访问硬件,可以达到类似于主机访问本地设备的性能。在Oracle一体机上,每个InfiniBand 网卡可以最多被63个虚拟机共享,也就是支持63个VF。

 

Exalogic的备份和恢复工具ExaBR-安装和配置

每个Exalogic系统当中都包含了多重组件,比如两台Infiniband交换机,两台ZFS存储机头等。这样就帮保证了单个组件的故障不会影响Exalogic系统的正常运行。但是,多重组件机制并不能保证在下面的情况下提供额外的保护:
  • 由于灾难或机房故障导致了整套Exalogic系统崩溃
  • 在更新过程当中,由于用户错误操作而导致的数据或配置的不一致性
  • 数据损坏

在绝大多情况下,灾难恢复机制是非常重要的。

在Exalogic当中,使用ExaBR工具可以快速并自动化的帮助我们来进行系统的备份和恢复。
我们将分两次来介绍ExaBR的使用,本文主要介绍如何在Exalogic环境下面来安装和配置ExaBR。
ExaBR概述

ExaBR是Exalogic众多实用工具中的一个,我们可以通过使用它来自动的备份Exalogic系统的配置文件和数据。

下面的Exalogic组件都可以使用ExaBR来备份和恢复:

  • 计算节点
  • Infiniband交换机
  • 以太网交换机(Cisco交换机)
  • ZFS存储
  • Exalogic控制单位 (虚拟化)
  • 客户的vServers (虚拟化)

ExaBR安装和配置 ExaBR的安装 1.安装ExaBR

ExaBR是打包在Exalogic lifecycle工具包(ELLC Toolkit)中的。使用ExaBR之前,我们首先需要安装Exalogic lifecycle工具包。关于Exalogic lifecycle工具包的最新版本以及具体的安装和配置方法,请参考Oracle文档1912063.1

注意:下文ELLC的简称就是Exalogic lifecycle。

安装ELLC工具包成功之后(通常安装在第一个计算节点上面),会在根目录下面创建下面的两个目录:

  • exalogic-lcdata
  • exalogic-lctools

目录‘exalogic-lctools’中存放ELLC工具包的命令集合,命令需要引用的脚本和相关的帮助文件等。我们的ExaBR在‘/exalogic-lctools/bin/’目录下。

目录‘exalogic-lcdata’中存放ELLC工具包的命令的配置文件以及相应的备份文件。比如ExaBR的配置文件是/exalogic-lcdata/backups/exabr.config。

2.生成ExaBR配置文件

在第一次运行ExaBR做备份之前,我们首先需要生成ExaBR的配置文件exabr.config。这个文件包含了所有需要备份和恢复的设备的主机名或者IP地址。

之后每次对相应的设备或者用户vServer做备份或恢复的时候,ExaBR都会通过读取这个配置文件来获得设备的主机名或者IP地址信息。

如果您需要备份或者恢复的设备不在这个配置文件里面,那么ExaBR将会报错。

下面的步骤演示了如何来生成ExaBR配置文件:

a.进入到目录/exalogic-lctools/bin中

cd /exalogic-lctools/bin

b. 运行带有参数init的exabr命令来生成ExaBR配置文件

./exabr init address_of_the_first_compute_node

在上面的命令中,address_of_the_first_compute_node是第一个计算节点的主机名或者IP地址。我们建议上面的命令就在第一个节点上面运行。
上面命令执行之后,我们会发现配置文件exabr.conf已经在目录/exalogic-lcdata/backups/下生成完毕,相应的主机名或者IP地址也同样在对应的组件填写完成。
下面是一个生成好的exabr.conf配置文件

# Exabr configuration file.
# Created on: 2013/12/17 14:24
# Please edit the values if needed to match your environment
#

compute_nodes = cn1.example.com, cn2.example.com, cn3.example.com, cn4.example.com

compute_nodes_iloms = cn1ilom.example.com, cn2ilom.example.com, cn3ilom.example.com, cn4ilom.example.com

ib_gw_switches = gw01.example.com, gw02.example.com
ib_spine_switches = 

storage_nodes = sn01.example.com, sn02.example.com
storage_nodes_iloms = sn01ilom.example.com, sn02ilom.example.com

# Cisco switch
# For ssh, specify it in the form: user@hostname
management_switches = mgmt.example.com
# connection type=telnet or ssh
management_switches_connection_type = telnet

# Control stack
emoc = cn1-eoib1-vm011.example.oracle.com
ovmm = cn1-eoib1-vm011.example.oracle.com

# The following 2 entries are only used for 2.0.4.x control stack
proxy_controllers = pc1.example.com,pc2.example.com
# db = 
# End entries for 2.0.4.x 

# #######################################
# Add user VMs for backup in this section
user_vservers = 
# #######################################
#
# how many backups to keep (per component)
# ‘0’ indicates that no backups should be removed automatically
retention_count = 5

c.确认exabr.config文件中的所有组件都已经被正确发现。

如果是在1号计算机点上面运行ExaBR,我们就需要保证1号计算节点可以访问exabr.config文件中的所有主机名或者IP地址。
我们建议在exabr.config文件中使用emoc管理网的主机名或IP地址。
注意:如果发现exabr.config文件中生成的主机名或者IP地址不正确,我们需要手动来修改对应设备的地址。
. 针对物理化的Exalogic,我们需要根据下表在exabr.conf文件里面来手动的添加实际设备

 设备名称  在exabr.conf文件中的参数  Cisco管理交换机  management_switches  NM2 36P交换机 (Spine交换机)  ib_spine_switches  Storage ILOMs  storage_nodes_iloms  Solaris Zone  compute_nodes

. 针对于虚拟化的Exalogic,通过手动修改exabr.conf文件里面的参数user_vservers,来备份和恢复需要的用户vServer。
下面的例子就是exabr.config文件中设置的备份和恢复需要的用户vServer:
# #######################################
# Add user VMs for backup in this section
user_vservers = test_vServer1, test_vServer2, test_vServer3
# #######################################

ExaBR的配置  配置ExaBR无密码登录功能

a. 针对相应的设备进行无密码登录设置,我们可以使用参数init-ssh

exabr init-ssh hostname1[,hostname2,…]

b. 如果需要所有Exalogic设备进行进行无密码登录,使用下面的命令

exabr init-ssh all-component

如果需要删除针对于具体设备的SSH无密码登录,我们可以使用带有参数remove-ssh的命令

exabr remove-ssh hostname1[,hostname2,…]

注意:
如果之前生成的私钥证书包含了密码保护,在运行ExaBR的时候可以使用标准的命令,比如ssh-agent,来加载节点中的key。

配置Cisco交换机的连接协议

默认情况下,ExaBR通过telnet来连接管理交换机。我们可以修改exabr.config配置文件中的参数management_switches_connection_type来更改连接的方式为SSH。

management_switches_connection_type = ssh

当连接方式修改为SSH之后,我们修改在参数management_switches中来提供用户名用于连接

management_switches = admin@mgmt.example.com

注意:默认情况下,Exalogic中的Cisco交换机的firmware是不支持SSH,如果需要支持SSH,必须升级firmware,请参考下面的文档1415044.1并使用硬件的客户服务号提一个SR给Oracle。

配置ExaBR备份的保留规则

默认情况下,ExaBR会针对每个设备或vServer保留最后5次成功的备份。如果需要修改成功备份的数量,我们可以修改exabr.config配置文件中的参数retention_count。

保留策略对于成功备份和失败备份都是适用的,我们建议手动删除失败的备份用来节约存储空间。

下面的例子是保留3次成功的备份。

retention_count = 3

ExaBR定期备份设置

我们可以通过使用cron或者其它计划任务软件来通过ExaBR定期备份Exalogic系统。在设计定期备份之前,我们需要注意下面的事项:

a. 如果使用cron做定期备份,在每个ExaBR命令后面需要添加数据重定向 &>/dev/null 

b. 如果使用cron来定期备份Exalogic control stack,cron就需要运行一个包含所有ExaBR命令的脚本,例如下面的脚本:

#!/bin/bash

# exabrcsbkup.sh

#echo “======= Starting exabrcsbkup.sh at `date`”

echo ” Starting control stack backup”

/exalogic-lctools/bin/exabr stop control-stack > /dev/null 2>&1

/exalogic-lctools/bin/exabr backup control-stack > /dev/null 2>&1

/exalogic-lctools/bin/exabr start control-stack > /dev/null 2>&1

/exalogic-lctools/bin/exabr backup all-ib > /dev/null 2>&1

echo EXABR returned $?

c. 需要针对于所有的设备配置SSH公钥方式登录。如果某个设备没有配置SSH公钥登录或者公钥登录失败,那么这个设备的定期备份将会失败。关于SSH公钥登录的配置,请参考文档前面的内容。

d. 为了保证ExaBR定期备份的过程中不会提示输入密码,我们使用参数–noprompt。

例如:/exalogic-lctools/bin/exabr backup all-cn –noprompt 

e. Cisco管理交换机不支持cron工具来定期备份,因此Cisco管理交换机不支持非交互式备份。我们需要通过交互式来备份Cisco交换机。 

EMOC安全证书认证失败的解决方法

众所周知,在Exalogic虚拟化的管理中,Enterprise Manager Ops Center(EMOC)是Exalogic目前提供的最经常使用的工具。无论是虚拟机的创建、修改,还是启动、停止,都离不开EMOC的操作。最近经常有用户遇到无法打开EMOC控制面板(http://emoc-ip:9443/emoc)的情况。那么,如何解决这个问题呢?

EMOC安全证书认证失败的解决方法

众所周知,在Exalogic虚拟化的管理中,Enterprise Manager Ops Center(EMOC)是Exalogic目前提供的最经常使用的工具。无论是虚拟机的创建、修改,还是启动、停止,都离不开EMOC的操作。

最近经常有用户遇到无法打开EMOC控制面板(http://emoc-ip:9443/emoc)的情况。在火狐浏览器下打开,会提示“安全连接失败”(如下图)。

而使用谷歌的Chrome浏览器,也会有类似的提示(如下图)。

IE或者第三方厂商开发的IE内核浏览器也会出现类似的错误(如下图)。

这些错误严重影响了用户对Exalogic的管理操作,而且很难说问题出在Exalogic Control控制台还是用户的浏览器。

到底是什么导致了这样的问题呢?这是因为EMOC使用的SSL算法(例如TLS1.0, TLS1.1)已经不再被新版本的浏览器认为是安全的了。浏览器在访问EMOC站点时对https使用的SSL算法进行了校验,并发现了不安全的因素,所以浏览器出于保护用户的目的拒绝访问。

那么如何解决这个问题呢?终极的解决方案当然是升级Exalogic软件至最新版。最新版本的EECS 2.0.6.2.160419(2016年4月版PSU)已经包含了对应的EMOC升级,可以让所有的新版浏览器访问了。

关于EECS 2.0.6.2.160419的更多内容,请参阅Exalogic Infrastructure April 2016 PSU – Fixed Bugs List (Doc ID 2122959.1)

如果近期不方便升级,仍然可以通过一个简单的设置让火狐浏览器无压力的访问EMOC。首先我们可以确认的是EMOC作为Exalogic的管理工具是安全可靠的,而且对于用户来说,EMOC也都是运行于Exalogic管理网仅供内部访问的。所以作为一个临时的解决方案,可以在不升级EMOC的情况下,让火狐浏览器允许访问EMOC管理界面。

首先,在火狐浏览器的地址栏输入about:config,这时会出现一个警告:

点击“我保证会小心”就进入火狐的配置页面了。这时在搜索栏里输入security.tls.insecure_fallback_hosts,会显示出对应的配置项。

这时,双击这个配置项,把EMOC控制台对应的地址填进去就可以了,例如:

设置之后,再次打开EMOC的地址,如果出现以下警告,那就说明EMOC已经可以正常访问了!

点击添加例外并确认就可以正常打开EMOC的控制台了。

当然,这个只是个临时的解决方案。Oracle推荐的解决方法仍然是升级Exalogic至最新的PSU以彻底解决这个问题。 

zfs snapshot – Exalogic备份基础

快照是重要的存储数据的技术,可以在不停止应用程序的情况下对数据进行备份。

l 冷备份:停止系统运行进行备份。

l 热备份:在系统运行期间来进行备份,比如Snapshot

首先说一下为什么需要snapshot,设想下面的场景:

在某一状态下做备份的时候,可能有应用正在访问某个文件(比如Weblogic正在记录重要的应用日志)或者数据库,这就使得备份的时候文件处于一个状态,而备份完成之后,文件却处于另外一个一个状态,从而导致备份的非一致性。

在这种情况下,成功解决状态不一致性的方法就是将其分区挂载为只读,然后通过数据库的表级别锁定(table-levelwrite locks)甚至停止数据库来备份数据。但是,这样做会严重应用业务的可用性。使用snapshot既可以获得一致性备份,又不会影响服务器的可用性。

什么是snapshot?

1). Snapshot是在某一时刻获得文件系统映像的技术

2). Snapshot并不是对所有数据块进行拷贝,只是对文件系统当前点的信息记录。

3). Snapshot是只读的,快照是不能被直接访问,而是对快照执行克隆、备份、回滚等操作,通过这些操作来保护数据。

4). snapshot创建之后,可以通过snapshot来了解文件系统的状态。

Snapshot实现方式分为两种:写时复制(CoW,Copy-on-Write)或者Split-Mirror

ZFS通常使用是CoW,因此这篇blog中,如无特殊说明,我们说的都是基于CoW的。

我们先看一下CoW的原理,

当一个snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制(Copy-on-Write)

在写操作写入块之前,CoW将原始数据移动到snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。

图一可以使我们加深对CoW原理的理解


图一:CoW流程

Z文件系统(ZFS)Sun微系统公司(2009被甲骨文公司收购)创建的,开源的LVM文件系统,被应用于Solaris系统中。Linux操作系统也已经推出开源的ZFS,即ZFS On Linux,当前最新的版本是v0.6.5.7

Exalogic中,ZFSstorage appliance使用操作是简化版的Solaris,并且相关的备份工具如Exabr都是基于ZFS snapshot的。下面我们来在Solaris系统中来尝试创建Snapshot

1. 创建一个test文件系统

2. test文件系统中创建两个文件分别是ab

3. 针对文件系统’rpool/test’来创建snapshot

无论文件系统的大小,创建它的一个snapshot几乎可以在瞬间完成。

4. 下面面我们看一下文件结构

通过上面的文件结构,我们可以看到:

a     . ‘rpool/test’文件系统占有了32K的硬盘空间

b     . 名字为rpool/test@1snapshot不占有硬盘空间。因为snapshot只是文件系统rpool/test@1的引用。当我们修改或者删除文件时,它将发生变化。

c’     . MOUNTPOINT项为空,这是因为snapshot是不可以被挂载的。

 到这里我们来重新概括一下:

文件系统rpool/test@1中包含了两个文件,ab。我们称ab为原始文件。

创建的快照rpool/test@1指向了文件ab,并且不占用磁盘空间。

5. 在文件系统 ‘rpool /test’中删除文件a

现在我们可以看到第一个创建的snapshot rpool/test@1 已经开始消耗磁盘空间,其大小是19.5K。这是因为snapshot rpool/test@1 line-height: 115%; font-family: Verdana, sans-serif; color: black; background: none 0% 0% repeat scroll white;”>’ 指向的文件‘a’已经从文件系统中删除了。

注意:在snapshot不被破坏或者删除的情况下,它将永远指向相同的文件。当指向的文件发生变化时,snapshot占有的空间也会发生变化。

6. 恢复文件系统

如果我们需要恢复原始的文件系统应该怎么做呢?

在恢复之前,我们首先看一下当前文件系统rpool/test的状态:

当前文件系统 rpool/test中只有一个文件a

通过rollback功能来恢复文件系统rpool/test到创建snapshot rpool/test@1的时刻。

同样,我们可以结合zfsclonepromote来完成类似的功能,在这个blog就不做过多介绍,如果想要详细了解的话,可以参考ZFS管理手册

这篇blog主要讲述了跟存储相关的ZFSsnapshot的基础内容,关于Exalogic中备份,我们会在下篇blog中阐述。

Exalogic工具包的实际应用

Exalogic工具包Exalogic Kinetic Infrastructure Tools(EKIT)是专为Oracle Exalogic虚拟化版本提供的一套自动化管理工具。

EKIT通过shell脚本调用Python程序以实现对Exalogic虚拟化的管理。这些工具在实际的IaaS命令行管理或API接口调用中实现了一个简化管理的作用,在实际应用中是非常有用的。

TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569