浪潮英信服務器NF570M3兩臺,華爲OceanStor 18500存儲一臺,以太網交換機兩臺,光纖交換機兩臺。html
操做系統:Redhat Enterprise Linux 6.7 x64node
集羣環境:RHCSmysql
數據庫:Oracle 11g R2linux
多路徑軟件:UltraPath for Linuxc++
類型 | 卷 | 大小 | 掛載點 | 用途 | 備註 |
內置硬盤 | 標準 | 500MB | /boot | 啓動分區 | 兩塊內置硬盤做RAID1web |
LVM | 20GB | /home | 用戶分區 | ||
20GB | /var | 日誌分區 | |||
20GB | /opt | 應用分區 | |||
32GB | N/A | SWAP分區 | |||
500GB | / | 根分區 | |||
共享存儲 | LUN | 500GB | /oradata | 數據庫數據區 | SAN存儲分配一個500GB的LUN |
主機名 | IP | 網口 | 用途 | 備註 |
ZHXYHDB01 | 35.64.6.17 | bond0(eth0、eth2) | 業務IP | 心跳IP和Fence IP應在同一網段;sql 一般業務IP和此兩者不在同一網段;數據庫 此項目心跳和Fence不在同段但能互通。apache |
50.3.1.200 | bond1(eth一、eth3) | 心跳IP | ||
50.1.2.221 | MGMT | Fence IP | ||
ZHXYHDB02 | 35.64.6.18 | bond0(eth0、eth2) | 業務IP | |
50.3.1.201 | bond1(eth一、eth3) | 心跳IP | ||
50.1.2.222 | MGMT | Fence IP | ||
35.64.6.19 | 集羣VIP |
已在華爲OceanStor存儲上爲本項目分配了500GB LUN,只需在兩臺服務器上分別安裝華爲OceanStor UltraPath多路徑軟件,重啓後便可正確識別存儲裸設備。瀏覽器
/dev/sdb即爲識別到的共享存儲,在兩臺服務器上均正確識別存儲後,利用此共享存儲空間建立LVM邏輯卷組和邏輯卷。如下操做均在其中一臺服務器上進行:
一、使用fdisk對/dev/sdb新建磁盤分區sdb1(使用所有500GB共享存儲空間):
二、將其格式化爲ext4文件系統格式:
# mkfs.ext4 /dev/sdb1
在兩臺服務器上分別建立/oradata目錄,用於掛載共享存儲,做爲數據庫數據區,修改該目錄權限:
# mkdir /oradata
# chown oracle:oinstall /oradata
網絡配置需按照網絡規劃表在兩臺服務器上分別配置,正式配置前先關閉NetworkManager服務:
# service networkmanager stop
# chkconfig networkmanager off
業務IP和心跳IP均做網卡綁定,業務IP配置網關,心跳IP不配網關。在/etc/sysconfig/network-scripts目錄下新建ifcfg-bond0和ifcfg-bond1,以業務IP配置爲例,網卡綁定配置以下:
ifcfg-bond0:
DEVICE=bond0
NAME=bond0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet IPADDR=35.64.6.17 NETMASK=255.255.255.0 GATEWAY=35.64.6.1 #若是是心跳IP則不能配置此行網關 BONDING_OPTS="miimon=100 mode=1"
ifcfg-eth0:
DEVICE=eth0
TYPE=Ethernet ONBOOT=yes BOOTPROTO=none SLAVE=yes MASTER=bond0
ifcfg-eth2:
DEVICE=eth2
TYPE=Ethernet ONBOOT=yes BOOTPROTO=none SLAVE=yes MASTER=bond0
而後在/etc/modprobe.d/目錄下新建bonding.conf文件,加入以下內容:
alias bond0 bonding
alias bond1 bonding
關閉NetworkManager服務,重啓network服務:
# service NetworkManager stop
# chkconfig NetworkManager off
# service network restart
HA集羣所需的Fence設備在本項目中能夠直接使用浪潮服務器自帶的IPMI,即MGMT管理口的服務器管理系統。Fence IP的配置須要重啓服務器,進入BIOS中的Advance選項的IPMI或者BMC項中配置,此處建議配置網關。一樣須要在兩臺服務器上分別配置。
檢查網絡是否調通,在兩臺服務器上分別ping 35.64.6.1網關、35.64.6.1七、35.64.6.1八、50.3.1.200、50.1.2.221等全部須要連通的地址。
最後在兩臺服務器上分別配置HOST文件,完成主機名與IP的映射(此步不是必須,若是主機名、心跳名可有可無的話):
#/etc/hosts
35.64.6.17 ZHXYHDB01
35.64.6.18 ZHXYHDB02 35.64.6.19 ZHXYHDB 50.3.1.200 ZHXYHDB01-PRIV 50.3.1.201 ZHXYHDB02-PRIV
本地源用於方便後續的RHCS集羣軟件以及oracle所需軟件包的安裝。須要在兩臺服務器上分別配置。
兩臺服務器上分別掛載RedHat 6.7系統鏡像:
# mount -o loop redhat6.7.iso /mnt/iso
在/etc/yum.repos.d目錄下新建rhel6.7.repo文件,寫入以下內容:
#rhel6.7.repo
[Server]
name=RHELServer baseurl=file:///mnt/iso/Server enabled=1 gpgcheck=0 [ResilientStorage] name=RHELResilientStorage baseurl=file:///mnt/iso/ResilientStorage enabled=1 gpgcheck=0 [ScalableFileSystem] name=RHELScalableFileSystem baseurl=file:///mnt/iso/ScalableFileSystem enabled=1 gpgcheck=0 [HighAvailability] name=RHELHighAvailability baseurl=file:///mnt/iso/HighAvailability enabled=1 gpgcheck=0 [LoadBalancer] name=RHELLoadBalancer baseurl=file:///mnt/iso/LoadBalancer enabled=1 gpgcheck=0
# yum clean all #終端輸入此命令更新源
在兩臺服務器上分別執行如下命令:
# service iptables stop
# chkconfig iptables off
修改/etc/selinux/config 文件
將SELINUX=enforcing改成SELINUX=disabled 重啓機器便可
oracle數據庫軟件須要在兩臺服務器上分別安裝,只安裝數據庫軟件而不建立數據庫實例。各類Linux發行版上安裝Oracle 11g R2的詳細需求和過程可參見官方文檔:
https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm
下面是本項目的Oracle數據庫完整安裝過程。
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle # passwd oracle
內核參數配置在/etc/sysctl.conf文件中,配置參數說明:
在安裝Oracle的時候須要調整linux的內核參數,可是各參數表明什麼含義呢,下面作詳細解析。
Linux安裝文檔中給出的最小值:
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 各參數詳解: kernel.shmmax: 是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值。設置應該足夠大,能在一個共享內存段下容納下整個的SGA ,設置的太低可能會致使須要建立多個共享內存段,這樣可能致使系統性能的降低。至於致使系統降低的主要緣由爲在實例啓動以及ServerProcess建立的時候,多個小的共享內存段可能會致使當時輕微的系統性能的下降(在啓動的時候須要去建立多個虛擬地址段,在進程建立的時候要讓進程對多個段進行「識別」,會有一些影響),可是其餘時候都不會有影響。 官方建議值: 32位linux系統:可取最大值爲4GB(4294967296bytes)-1byte,即4294967295。建議值爲多於內存的一半,因此若是是32爲系統,通常可取值爲4294967295。32位系統對SGA大小有限制,因此SGA確定能夠包含在單個共享內存段中。 64位linux系統:可取的最大值爲物理內存值-1byte,建議值爲多於物理內存的一半,通常取值大於SGA_MAX_SIZE便可,能夠取物理內存-1byte。例如,若是爲12GB物理內存,可取12*1024*1024*1024-1=12884901887,SGA確定會包含在單個共享內存段中。 kernel.shmall: 該參數控制可使用的共享內存的總頁數。Linux共享內存頁大小爲4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那麼須要共享內存頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB物理內存,設置kernel.shmall = 4194304才符合要求(幾乎是原來設置2097152的兩倍)。這時能夠將shmmax參數調整到16G了,同時能夠修改SGA_MAX_SIZE和SGA_TARGET爲12G(您想設置的SGA最大大小,固然也能夠是2G~14G等,還要協調PGA參數及OS等其餘內存使用,不能設置太滿,好比16G) kernel.shmmni: 該參數是共享內存段的最大數量。shmmni缺省值4096,通常確定是夠用了。 fs.file-max: 該參數決定了系統中所容許的文件句柄最大數目,文件句柄設置表明linux系統中能夠打開的文件的數量。 fs.aio-max-nr: 此參數限制併發未完成的請求,應該設置避免I/O子系統故障。 推薦值是:1048576 其實它等於 1024*1024 也就是 1024K 個。 kernel.sem: 以kernel.sem = 250 32000 100 128爲例: 250是參數semmsl的值,表示一個信號量集合中可以包含的信號量最大數目。 32000是參數semmns的值,表示系統內可容許的信號量最大數目。 100是參數semopm的值,表示單個semopm()調用在一個信號量集合上能夠執行的操做數量。 128是參數semmni的值,表示系統信號量集合總數。 net.ipv4.ip_local_port_range: 表示應用程序可以使用的IPv4端口範圍。 net.core.rmem_default: 表示套接字接收緩衝區大小的缺省值。 net.core.rmem_max: 表示套接字接收緩衝區大小的最大值。 net.core.wmem_default: 表示套接字發送緩衝區大小的缺省值。 net.core.wmem_max: 表示套接字發送緩衝區大小的最大值。
其中kernel.shmmax關係到Oracle數據庫的系統全局區SGA的最大大小,kernel.shmmax值不能小於SGA的大小,不然後面設置SGA時會由於kernel.shmmax過小而出錯。kernel.shmmax的大小須要根據當前系統環境的內存大小和Oracle數據庫的SGA所指望的大小進行設定。SGA和PGA大小的設定原則爲:
Oracle官方文檔推薦:
MEMORY_TARGET=物理內存 x 80% MEMORY_MAX_SIZE=物理內存 x 80% 對於OLTP系統: SGA_TARGET=(物理內存 x 80%) x 80% SGA_MAX_SIZE=(物理內存 x 80%) x 80% PGA_AGGREGATE_TARGET=(物理內存 x 80%) x 20% 對於DSS系統: SGA_TARGET=(物理內存 x 80%) x 50% SGA_MAX_SIZE=(物理內存 x 80%) x 50% PGA_AGGREGATE_TARGET=(物理內存 x 80%) x 50%
本項目中服務器內存爲32G,爲SGA設置最大值爲20G,所以將Oralce數據庫內核參數配置爲:
#oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744 kernel.shmall = 5242880 kernel.shmmax = 21474836480 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586
將以上代碼加入/etc/sysctl.conf文件的末尾,並在終端輸入sysctl -p 命令使配置當即生效。
系統資源限制文件爲/etc/security/limits.conf,該文件說明以下:
limits.conf的格式以下:
username|@groupname type resource limit username|@groupname:設置須要被限制的用戶名,組名前面加@和用戶名區別。也能夠用通配符*來作全部用戶的限制。 type:有 soft,hard 和 -,soft 指的是當前系統生效的設置值。hard 代表系統中所能設定的最大值。soft 的限制不能比har 限制高。用 - 就代表同時設置了 soft 和 hard 的值。 resource: core - 限制內核文件的大小 date - 最大數據大小 fsize - 最大文件大小 memlock - 最大鎖定內存地址空間 nofile - 打開文件的最大數目 rss - 最大持久設置大小 stack - 最大棧大小 cpu - 以分鐘爲單位的最多 CPU 時間 noproc - 進程的最大數目 as - 地址空間限制 maxlogins - 此用戶容許登陸的最大數目 要使 limits.conf 文件配置生效,必需要確保 pam_limits.so 文件被加入到啓動文件中。查看 /etc/pam.d/login 文件中有: session required /lib/security/pam_limits.so
本項目的Oracle資源限制設置爲:
oracle soft nproc 2047
oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
將以上代碼加入/etc/security/limits.conf文件末尾。
若是內存較大,sga target不能超過tmpfs大小,所以須要將tmpfs調整到一個大於sga target的值。編輯/etc/fstab,修改tmpfs行:
tmpfs /dev/shm tmpfs defaults,size=25600m 0 0 #如服務器內存32GB,sga target爲20GB,則可設置tmpfs爲25GB
從新mount並查看tmpfs設置是否生效:
[root@cheastrac01:~]$mount -o remount /dev/shm [root@cheastrac01:~]$df -h
一、建立Oracle相關目錄並更改相關權限:
# mkdir -p /opt/oracle/oracle11g
# mkdir -p /opt/oraInventory
# chown -R oracle:oinstall /opt/oracle
# chmod -R 775 /opt/oracle
# chown -R oracle:oinstall /opt/oraInventory
# chmod -R 775 /opt/oraInventory
二、配置Oracle環境變量:
在/etc/profile文件末尾加入以下內容:
#Oracle
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/oracle11g export ORACLE_SID=zxbank #本項目的oracle實例名,若是有多個實例,此處可不指定 export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
終端輸入以下命令使配置生效:
# . /etc/profile
Oracle數據庫軟件的安裝和運行須要依賴部分第三方軟件包,安裝Oracle數據庫前須要先安裝這些軟件包,根據Oracle官方安裝文檔,RedHat 6.7環境須要安裝的軟件包有:
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6.i686 elfutils-libelf-0.161-3.el6(x86_64) elfutils-0.161-3.el6(x86_64) elfutils-devel-0.161-3.el6(x86_64) elfutils-libs-0.161-3.el6(x86_64) elfutils-libelf-devel-0.161-3(el6.x86_64) gcc-4.4.4-13.el6 (x86_64) gcc-c++-4.4.4-13.el6 (x86_64) glibc-2.12-1.7.el6 (i686) glibc-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6.i686 pdksh-5.2.14(or ksh) libgcc-4.4.4-13.el6 (i686) libgcc-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6.i686 libstdc++-devel-4.4.4-13.el6 (x86_64) libstdc++-devel-4.4.4-13.el6.i686 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.107-10.el6.i686 make-3.81-19.el6 sysstat-9.0.4-11.el6 (x86_64) unixODBC-2.2.14-11.el6 (x86_64) or later unixODBC-2.2.14-11.el6.i686 or later unixODBC-devel-2.2.14-11.el6 (x86_64) or later unixODBC-devel-2.2.14-11.el6.i686 or later
以上包都可經過使用yum命令從以前配置好的本地源中安裝。
【注】:安裝軟件包技巧:軟件包版本號無須徹底一致,也無須一個個安裝,只需利用通配符進行批量安裝便可,如安裝unixODBC的相關包,可直接使用
# yum -y install unixODBC*
命令一步到位,不會產生軟件包漏裝的問題。正式安裝Oracle數據庫時會有一個檢查系統環境是否知足需求的過程,若是提示部分軟件包沒有安裝,則在root帳戶下使用yum進行安裝便可,若是隻是軟件包版本不對則可直接忽略。
切換到oracle用戶下:
# su - oracle
將系統變量LANG暫時設置爲英文,以避免安裝界面出現中文字符沒法顯示:
# export LANG=en_US
解壓Oracle安裝包,執行runInstaller進行圖文界面安裝。
# cd database
# ./runInstaller
不勾選也不填郵箱,點下一步,彈出提示點是。
選只安裝數據庫軟件,下一步。
選單節點安裝,下一步。
默認,下一步。
選企業版,下一步。
以前預安裝配置沒問題的話,這裏會自動填上安裝路徑,直接下一步。
下一步。
肯定告警的這些包是否已經安裝,若是都只是依賴包的版本問題,直接勾選‘Ingore all’,而後點Finish便可完成安裝,完成後按要求使用root帳號運行兩個腳本。
切換到oracle帳戶下使用netca進行監聽器的配置,具體步驟以下:
#oracle帳戶下操做
# export LANG=en_US #更改系統語言爲英文,避免netca圖像界面亂碼
# netca
打開圖形界面,一路Next便可完成一個默認監聽器的配置。
配置完成後會自動啓動監聽器,如未自動啓動請在oracle帳戶下手動啓動:
#oracle帳戶下操做 # lsnrctl start
自動配置的監聽器只能提供本機(localhost)鏈接。這裏先啓用自動配置的監聽器用於後續數據庫實例的安裝和配置。
注意:數據庫實例須要建立在共享存儲上,所以須要先進行後文中共享存儲的掛載後才能開始配置!建議先完成RHCS集羣中IP和存儲資源的添加並啓動集羣后再進行數據庫實例的配置。
在一臺節點服務器上掛載共享存儲,開啓監聽器,而後在該存儲上建立數據庫實例,關閉實例,關閉監聽器,完成後卸載共享存儲。再將相應的實例配置信息複製到另一臺服務器上。最後在兩臺節點服務器上分別配置對應於浮動IP的監聽器。這裏咱們在35.64.6.17節點上完成此操做。具體步驟以下:
root帳戶下,掛載共享存儲:
# mount /dev/oraclevg/oraclelv /oradata
開啓oracle監聽器(保證監聽器已經按照上文配置完成):
# lsnrctl start
監聽器啓動後狀態應以下圖所示:
切換到oracle帳戶下,開始進行實例建立,這裏使用dbca在圖形化界面建立,如下數據庫實例建立和配置均在oracle帳戶下進行:
#oracle帳戶下操做 # export LANG=en_US #更改系統語言爲英文,避免netca圖像界面亂碼 # dbca
本項目須要在節點上建立兩個實例,分別爲orclcmis和orclebank,如下dbca建庫嚮導須要作兩次。
(如下關於數據庫實例建立圖爲網上所找,實際配置以圖下說明文字爲準)
(本項目實例名應爲orclcmis和orclebank)
(本項目不啓用Enterprise Manager)
(本項目全部帳戶使用同一管理口令:Admin123)
(本項目數據文件的存儲設備使用文件系統,採用Oracle管理數據文件的模式OMF,路徑選擇共享存儲掛載的路徑/oradata)
(本項目啓用閃回區和歸檔,閃回區大小40GB,位置爲共享存儲掛載目錄/oradata下的flash_recovery_area目錄)
(本項目一個實例的內存大小爲總內存的40%[兩個實例共佔用80%],使用自動內存管理,字符集爲GBK)
(本項目不安裝樣本數據庫)
完成建立
數據庫實例建立完成後使用sysdba權限進入數據庫,開啓數據庫:
# sqlplus / as sysdba > startup #環境變量中已經指定了ORACLE_SID,會自動啓動此實例
進行項目相關的數據庫表空間的建立以及用戶的建立和受權。
使用OMF策略的話,建立表空間的語句更簡單:
# CREATE TABLESPACE shop_tb #建立名爲shop_tb的表空間
建立用戶並將其默認表空間設置爲上述表空間:
# CREATE USER shop IDENTIFIED BY shop DEFAULT TABLESPACE shop_tb
爲用戶受權:
# grant connect,resource to shop; # grant create any sequence to shop; # grant create any table to shop; # grant delete any table to shop; # grant insert any table to shop; # grant select any table to shop; # grant unlimited tablespace to shop; # grant execute any procedure to shop; # grant update any table to shop; # grant create any view to shop;
完成後關閉數據庫和監聽器:
> shutdown immediate
# lsnrctl stop
將相關密碼文件和參數文件複製到另一個節點:
# cd $ORACLE_HOME/dbs
# ls
hc_zxbank.dat init.ora lkZXBANK orapwzxbank spfilezxbank.ora
#scp orapwzxbank oracle@35.64.6.18:/opt/oracle/oracle11g/dbs/
#scp spfilezxbank.ora oracle@35.64.6.18:/opt/oracle/oracle11g/dbs/
登錄到另一個節點上,跳轉到$ORACLE_BASE目錄的admin目錄下實例目錄下,本項目中建立了兩個實例,admin目錄下兩實例完整路徑爲/opt/oracle/admin/orclcmis和/opt/oracle/admin/orclebank。在這兩個目錄下分別建立數據庫實例啓動所需的目錄。具體須要建立的目錄能夠對照以前建立數據庫實例的節點的相同目錄。如:
#cd $ORACLE_BASE/admin/orclcmis # mkdir {adump,bdump,cdump,dpdump,pfile,udump}
確保兩節點的數據庫實例和監聽器都關閉後,移除/oradataa目錄的掛載:
# umount /oradata
最後,分別確認一下兩個節點相關目錄的權限都是正確的:
# chown -R oracle:oinstall /opt/oracle #兩節點分別執行
先確保兩臺節點監聽器均處於關閉狀態,而後在兩臺節點服務器上分別修改監聽器配置文件,將遠程鏈接IP設置爲集羣浮動IP。本項目須要在一個監聽器上配置兩個數據庫實例:
#oracle帳戶下操做 # lsnrctl stop # vi $ORACLE_HOME/network/admin/listener.ora
# vi $ORACLE_HOME/network/admin/tnsnames.ora
監聽器配置文件listener.ora修改以下:
# listener.ora Network Configuration File: /opt/oracle/oraclellg/network/admin/listener.ora # Generated by Oracle configuration tools. ORCLCMIS = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCQC)) (ADDRESS = (PROTOCOL = TCP)(HOST = 35.64.6.19 )(PORT = 1521)) ) ORCLEBANK = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROCQC)) (ADDRESS = (PROTOCOL = TCP)(HOST = 35.64.6.19 )(PORT = 1521)) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (ORACLE_HOME = /opt/oracle/oraclellg) (SID_NAME = ORCLCMIS) ) (SID_DESC = (ORACLE_HOME = /opt/oracle/oraclellg) (SID_NAME = ORCLEBANK) ) (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /opt/oracle/oraclellg) (PROGRAM = extproc) ) )
監聽器配置文件tnsnames.ora修改以下:
# tnsnames.ora Network Configuration File: /opt/oracle/oraclellg/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORCLEBANK = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 35.64.6.19)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = ORCLEBANK) ) ) ORCLCMIS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 35.64.6.19)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SID = ORCLCMIS) ) )
完成後確保監聽器處於關閉狀態。
1. RHCS簡介
RHCS是Red Hat Cluster Suite的縮寫,即紅帽子集羣套件,RHCS是一個可以提供高可用性、高可靠性、負載均衡、存儲共享且經濟廉價的集羣工具集合,它將集羣系統中三大集羣架構融合一體,能夠給web應用、數據庫應用等提供安全、穩定的運行環境。高可用集羣是RHCS的核心功能。當應用程序出現故障,或者系統硬件、網絡出現故障時,應用能夠經過RHCS提供的高可用性服務管理組件自動、快速從一個節點切換到另外一個節點,節點故障轉移功能對客戶端來講是透明的,從而保證應用持續、不間斷的對外提供服務,這就是RHCS高可用集羣實現的功能。
2. RHCS集羣組成介紹 RHCS是一個集羣工具的集合,主要有下面幾大部分組成: A、 分佈式集羣管理器(CMAN) Cluster Manager,簡稱CMAN,是一個分佈式集羣管理工具,它運行在集羣的各個節點上,爲RHCS提供集羣管理任務。 CMAN用於管理集羣成員、消息和通知。它經過監控每一個節點的運行狀態來了解節點成員之間的關係,當集羣中某個節點出現故障,節點成員關係將發生改變,CMAN及時將這種改變通知底層,進而作出相應的調整。 B、鎖管理(DLM) Distributed Lock Manager,簡稱DLM,表示一個分佈式鎖管理器,它是RHCS的一個底層基礎構件,同時也爲集羣提供了一個公用的鎖運行機制,在RHCS集羣系統中,DLM運行在集羣的每一個節點上,GFS經過鎖管理器的鎖機制來同步訪問文件系統元數據。CLVM經過鎖管理器來同步更新數據到LVM卷和卷組。 DLM不須要設定鎖管理服務器,它採用對等的鎖管理方式,大大的提升了處理性能。同時,DLM避免了當單個節點失敗須要總體恢復的性能瓶頸,另外,DLM的請求都是本地的,不須要網絡請求,於是請求會當即生效。最後,DLM經過分層機制,能夠實現多個鎖空間的並行鎖模式。 C、配置文件管理(CCS) Cluster Configuration System,簡稱CCS,主要用於集羣配置文件管理和配置文件在節點之間的同步。CCS運行在集羣的每一個節點上,監控每一個集羣節點上的單一配置文件/etc/cluster/cluster.conf的狀態,當這個文件發生任何變化時,都將此變化更新到集羣中的每一個節點,時刻保持每一個節點的配置文件同步。例如,管理員在節點A上更新了集羣配置文件,CCS發現A節點的配置文件發生變化後,立刻將此變化傳播到其它節點上去。 rhcs的配置文件是cluster.conf,它是一個xml文件,具體包含集羣名稱、集羣節點信息、集羣資源和服務信息、fence設備等,這個會在後面講述。 D、柵設備(FENCE) FENCE設備是RHCS集羣中必不可少的一個組成部分,經過FENCE設備能夠避免因出現不可預知的狀況而形成的「腦裂」現象,FENCE設備的出現,就是爲了解決相似這些問題,Fence設備主要就是經過服務器或存儲自己的硬件管理接口,或者外部電源管理設備,來對服務器或存儲直接發出硬件管理指令,將服務器重啓或關機,或者與網絡斷開鏈接。 FENCE的工做原理是:當意外緣由致使主機異常或者宕機時,備機會首先調用FENCE設備,而後經過FENCE設備將異常主機重啓或者從網絡隔離,當FENCE操做成功執行後,返回信息給備機,備機在接到FENCE成功的信息後,開始接管主機的服務和資源。這樣經過FENCE設備,將異常節點佔據的資源進行了釋放,保證了資源和服務始終運行在一個節點上。 RHCS的FENCE設備能夠分爲兩種:內部FENCE和外部FENCE,經常使用的內部FENCE有IBM RSAII卡,HP的iLO卡,還有IPMI的設備等,外部fence設備有UPS、SAN SWITCH、NETWORK SWITCH等 E、高可用服務管理器 高可用性服務管理主要用來監督、啓動和中止集羣的應用、服務和資源。它提供了一種對集羣服務的管理能力,當一個節點的服務失敗時,高可用性集羣服務管理進程能夠將服務從這個失敗節點轉移到其它健康節點上來,而且這種服務轉移能力是自動、透明的。 RHCS經過rgmanager來管理集羣服務,rgmanager運行在每一個集羣節點上,在服務器上對應的進程爲clurgmgrd。 在一個RHCS集羣中,高可用性服務包含集羣服務和集羣資源兩個方面,集羣服務其實就是應用服務,例如apache、mysql等,集羣資源有不少種,例如一個IP地址、一個運行腳本、ext3/GFS文件系統等。 在RHCS集羣中,高可用性服務是和一個失敗轉移域結合在一塊兒的,所謂失敗轉移域是一個運行特定服務的集羣節點的集合。在失敗轉移域中,能夠給每一個節點設置相應的優先級,經過優先級的高低來決定節點失敗時服務轉移的前後順序,若是沒有給節點指定優先級,那麼集羣高可用服務將在任意節點間轉移。所以,經過建立失敗轉移域不但能夠設定服務在節點間轉移的順序,並且能夠限制某個服務僅在失敗轉移域指定的節點內進行切換。 F、集羣配置管理工具 RHCS提供了多種集羣配置和管理工具,經常使用的有基於GUI的system-config-cluster、Conga等,也提供了基於命令行的管理工具。 system-config-cluster是一個用於建立集羣和配置集羣節點的圖形化管理工具,它有集羣節點配置和集羣管理兩個部分組成,分別用於建立集羣節點配置文件和維護節點運行狀態。通常用在RHCS早期的版本中。 Conga是一種新的基於網絡的集羣配置工具,與system-config-cluster不一樣的是,Conga是經過web方式來配置和管理集羣節點的。Conga有兩部分組成,分別是luci和ricci,luci安裝在一臺獨立的計算機上,用於配置和管理集羣,ricci安裝在每一個集羣節點上,Luci經過ricci和集羣中的每一個節點進行通訊。 RHCS也提供了一些功能強大的集羣命令行管理工具,經常使用的有clustat、cman_tool、ccs_tool、fence_tool、clusvcadm等,這些命令的用法將在下面講述。 G、 Redhat GFS GFS是RHCS爲集羣系統提供的一個存儲解決方案,它容許集羣多個節點在塊級別上共享存儲,每一個節點經過共享一個存儲空間,保證了訪問數據的一致性,更切實的說,GFS是RHCS提供的一個集羣文件系統,多個節點同時掛載一個文件系統分區,而文件系統數據不受破壞,這是單一的文件系統,例如EXT三、EXT2所不能作到的。 爲了實現多個節點對於一個文件系統同時讀寫操做,GFS使用鎖管理器來管理I/O操做,當一個寫進程操做一個文件時,這個文件就被鎖定�%@C�此時不容許其它進程進行讀寫操做,直到這個寫進程正常完成才釋放鎖,只有當鎖被釋放後,其它讀寫進程才能對這個文件進行操做,另外,當一個節點在GFS文件系統上修改數據後,這種修改操做會經過RHCS底層通訊機制當即在其它節點上可見。 在搭建RHCS集羣時,GFS通常做爲共享存儲,運行在每一個節點上,而且能夠經過RHCS管理工具對GFS進行配置和管理。這些須要說明的是RHCS和GFS之間的關係,通常初學者很容易混淆這個概念:運行RHCS,GFS不是必須的,只有在須要共享存儲時,才須要GFS支持,而搭建GFS集羣文件系統,必需要有RHCS的底層支持,因此安裝GFS文件系統的節點,必須安裝RHCS組件。
在兩臺服務器上分別按照RHCS集羣:
查詢是否存在RHCS相關組件的yum源:
# yum grouplist
#是否存在High Availability和High Availability Management
#中文環境下則爲‘高可用性’和‘高可用性管理’
如成功,則安裝RHCS HA組件:
# yum –y groupinstall "High Availability Management" "High Availability"
#中文環境下爲:# yum –y groupinstall "高可用性" "高可用性管理"
安裝完成後,若是集羣須要使用共享存儲,則須要額外安裝配置lvm2-cluster:
# yum -y install lvm2-cluster
配置lvm2-cluster:
編輯/etc/lvm/lvm.conf文件,修改:locking_type = 3
luci是RHCS默認的集羣管理工具,能夠完成集羣的建立及管理工做。
在兩臺服務器上分別啓動集羣軟件:
# service ricci start #啓動集羣軟件,會自動啓動cman和rgmanager # service cman start #若是已啓動ricci,可無需執行此語句 # service rgmanager start #若是已啓動ricci,可無需執行此語句 # chkconfig cman on # chkconfig rgmanager on # chkconfig ricci on #設置集羣軟件開機自動啓動 # passwd ricci #設置集羣節點密碼
在其中一臺服務器上安裝luci集羣管理工具並啓動:
# service luci start #啓動集羣管理工具
# chkconfig luci on #設置luci開機啓動
此步驟須要在集羣節點配置完成後(添加集羣資源前)再執行。如下操做在兩臺服務器上分別執行,:
一、建立掛載共享存儲的目錄:
# mkdir /oradata #建立目錄用於存儲的掛載
二、啓動lvm2-cluster服務:
# service clvmd start #需先啓動上述集羣服務後纔可啓動clvmd服務 # chkconfig clvmd on
如下操做在其中一臺服務器上執行:
三、新建LVM卷組oraclevg,將共享存儲/dev/sdb1建立爲物理卷並加入卷組中,在卷組中建立邏輯卷oraclelv:
# pvcreate /dev/sdb1
# vgcreate oraclevg /dev/sdb1
# lvcreate -n oraclelv -L +500G /dev/oraclevg #可經過vgdisplay查看vg所有剩餘PE,而後使用‘-l PE數’參數將vg所有剩餘空間加入lv中,而無須使用-L +xxGB的方式
# mkfs.ext4 /dev/oraclevg/oraclelv
四、查看卷組和邏輯卷狀態,若是顯示爲不可用(NOT Available),則須要激活卷組:
# vgdisplay # lvdisplay # vgchange -a y oraclevg #只在一臺服務器上執行,若是vg或者lv狀態爲不可用,均激活vg便可,若是重啓後狀態又不可用,則須要將此命令寫入/etc/rc.local中開機啓動
五、查看lvm2-cluster是否識別到共享存儲的卷組(注意:必須在clvmd服務啓動後才能進行vg和lv的建立,不然lvm2-cluster將沒法識別,vg和lv將沒法添加到集羣資源組中):
# vgdisplay # lvdisplay # vgchange -a y oraclevg #若是vg或者lv狀態爲不可用,均激活vg便可,若是重啓後狀態又不可用,則須要將此命令寫入/etc/rc.local中開機啓動
# service clvmd status #clvmd服務的狀態必須以下才表示正確識別了用於集羣的vg和lv
clvmd (pid 7978)正在運行...
Clustered Volume Groups: oraclevg
Active clustered Logical Volumes: oraclelv
啓動luci服務後便可使用瀏覽器打開luci進行集羣建立和管理了。地址爲:
https://35.64.6.17:8084 #用戶名和密碼與系統root帳號相同
點擊create建立集羣:
配置說明:
cluster name:給集羣添加一個命名便可。
而後分別添加兩個節點:
Use the Same Password for All Nodes:全部節點使用相同的節點管理密碼,建議勾選。
Node Name:節點名,與/etc/hosts文件中心跳IP的對應命名相同便可。也能夠直接填寫心跳IP。(兩節點分別填寫)
Password:節點管理密碼,隨便設置,建議與系統root密碼相同。
Ricci Hostname:ricci主機名,默認與節點名相同,不用更改。
Ricci Port:ricci端口,默認11111便可。
節點添加完成後繼續配置:
Download Packages:使用網絡下載所需的相關包。
Use Locally Installed Packages:使用本地已安裝的包,選擇此項。
Reboot Nodes Before Joining Cluster:主機節點加入集羣前先重啓,建議不勾選。
Enable Shared Storage Support:共享存儲支持,若是須要使用共享存儲,須要勾選此項。(此項須要系統安裝lvm2-cluster並啓動clvmd服務)
點擊Create Cluster建立集羣,ricci會自動啓動添加的節點服務器上的集羣軟件(cman和rgmanager),成功後便可完成集羣的建立和節點的添加。
集羣建立完成後如圖:
Fence設備能夠防止集羣資源(例如文件系統)同時被多個節點佔有,保護了共享數據的安全性和一致性節,同時也能夠防止節點間腦裂的發生。(Fence設備並不是不可缺乏,一般也可使用仲裁盤代替Fence設備,本項目使用Fence方案)
切換到「Fence Devices」選項,「Add」添加兩個Fence設備,對於華爲浪潮等國產服務器,服務器自己的IPMI管理系統(MGMT管理口)便可充當Fence設備。以添加其中一個Fence設備爲例:
選擇IPMI Lan:
Fence Type:Fence類型,本項目使用IPMI;
Name:給Fence設備取個名字;
IP Address or Hostname:Fence設備IP地址或者設備名,這裏直接填IP地址,即服務器管理口IP;
Login:Fence設備登錄帳號,華爲服務器一般是root/Huawei12#$,浪潮服務器多是admin/admin,或者root/superuser等等。
Password:Fence設備登錄密碼,如上;
Password Script:密碼腳本,無視;
Authentication Type:認證類型,選擇密碼認證或者None;
Use Lanplus:部分服務器機型須要勾選此項Fence纔可正常工做,建議作切換測試時根據測試結果選擇是否勾選;
Privilege Level:須要操做權限在Opretor以上,通常default便可。
其餘的能夠不用管了,「submit」提交便可。
兩個Fence均建立完成後如圖:
【注意】部分服務器IPMI口系統未自動啓用ssh服務,須要登陸到IPMI管理系統啓用服務,不然fence配置無用!
Fence設備配置完成後,須要在Nodes頁面爲每一個node指定相對應的Fence Device,如圖:
最後能夠經過如下命令驗證Fence是否可用:
# fence_ipmilan -v -P -a 50.1.2.221 -l admin -p admin -o status #經過fence設備查看主機狀態, -o reboot可重啓。
Failover Domains是配置集羣的失敗轉移域,經過失敗轉移域能夠將服務和資源的切換限制在指定的節點間。切換到「Failover Domains」選項,點擊「add」,配置以下:
Name:給失敗轉移域策略取一個名字;
prioritized: 是否啓用域成員節點優先級設置,這裏啓用;
Restricted:是否只容許資源在指定的節點間切換,這裏只有兩個節點互相切換,是否啓用都行;
No Failback:是否啓用故障回切功能,即當高優先級節點失效,資源切換到其餘節點,而高優先級節點從新恢復正常時,資源是否再次切換回高優先級節點,這裏選擇不回切,即啓用No Failback;
Member:選擇失敗轉移域的成員,本項目只有兩個節點,均勾選;
Priority:成員節點優先級,值越低優先級越高。高優先級一般做爲主節點。
點擊「Create」完成失敗轉移域建立,完成後如圖:
Resources是集羣的核心,主要包含服務腳本、IP地址、文件系統等,本項目只涉及IP地址、文件系統和腳本的添加。
IP地址添加
「Add」選擇添加IP Address:
IP Address:IP地址,一般做爲集羣浮動IP;
Netmask Bits:子網掩碼,本項目中是255.255.255.0,即24;
其餘默認便可。點擊「Submit」提交。
文件系統添加
因爲以前咱們將使用的共享存儲作成了lvm邏輯卷系統,所以在添加文件系統時須要先添加HA LVM,注意啓用HA LVM須要確保lvm2-cluster服務啓動。以前建立的邏輯卷組爲oraclevg,邏輯卷爲oraclelv,所以添加HA LVM以下:
Name:給HA LVM取個名字;
Volume Group Name:共享存儲的卷組名,這裏爲oraclevg;
Logical Volume Name:須要添加的邏輯卷名,這裏爲oraclelv;
Fence the Node if It is Unable to Clean Up LVM Tags:當節點LVM標記沒法清除時認爲節點腦裂,這裏不啓用。
點擊「Submit」提交。
而後再添加文件系統:
Name:給文件系統取個名字;
Filesystem Type:指定文件系統類型,以前建立邏輯卷時將其格式化爲ext4格式了,能夠選擇ext4,也能夠選Autodetect自動檢測;
Mount Point:設備掛載位置。選擇以前建立好的目錄/oradata,邏輯卷將自動掛載在當前主節點的該目錄上;
Device,FS Label, or UUID:須要掛載的設備,本項目使用的是LVM邏輯卷,因此這裏填寫邏輯卷路徑便可:/dev/oraclevg/oraclelv;
Mount Options和Filesystem ID無視便可。
Force Unmount:是否強制卸載,集羣切換時掛載的設備有時候會由於資源佔用等問題沒法卸載,致使集羣切換失敗,這裏啓用強制卸載,能夠防止此問題發生;
Force fsck:是否強制文件系統檢查,文件系統檢查會拖慢集羣切換時間,這裏不啓用;
Enable NFS daemon and lockd workaround:啓用NFS守護進程和上鎖的解決方法,無視;
Use Quick Status Checks:使用快速狀態檢查,無視;
Reboot Host Node if Unmount Fails:設備卸載失敗時是否重啓該節點,一樣能夠防止設備卸載失敗致使集羣切換失敗的問題,能夠勾選,這裏無視。
點擊「Submit」提交。
腳本添加
本項目添加的腳本主要用於控制集羣切換時oracle數據庫監聽器和實例的起停。RHCS集羣對於腳本有專門的格式要求,一般須要有start、stop等函數進行自動調用。腳本應當先分別保存在兩節點的/etc/init.d目錄下並賦予可執行權限,如本項目腳本名爲dbora,使用root帳戶建立並受權:
# chmod 755 /etc/init.d/dbora
dbora腳本內容以下(針對雙實例的腳本),腳本能夠在加入集羣資源組以前單獨運行進行測試,如/etc/init.d/dbora start:
#!/bin/bash export ORACLE_HOME=/opt/oracle/oraclellg start() { echo "Starting Listener...." $ORACLE_HOME/bin/lsnrctl start su - oracle<<EOF export ORACLE_SID=orclcmis echo "Starting Oraclellg Server INSTANCE ORCLCMIS... " sqlplus / as sysdba startup exit; EOF su - oracle<<EOF export ORACLE_SID=orclebank echo "Starting Oraclellg Server INSTANCE ORCLEBANK... " sqlplus / as sysdba startup exit; EOF } stop() { su - oracle<<EOF export ORACLE_SID=orclcmis echo "Shutting down Oraclellg Server ORCLCMIS..." sqlplus / as sysdba shutdown immediate; exit EOF su - oracle<<EOF export ORACLE_SID=orclebank echo "Shutting down Oraclellg Server ORCLEBANK..." sqlplus / as sysdba shutdown immediate; exit EOF echo "Shutting down Listener....... " $ORACLE_HOME/bin/lsnrctl stop } restart() { stop start } status() { ps -ef |grep -v grep|grep ora_smon_${ORACLE_SID} if [$?=0]; then exit 0 fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Usage: $0 {start I stop|restart|status}" ;; esac
資源添加中選擇添加Script:
至此資源所有添加完成,如圖所示:
PS:
一、本項目中的共享存儲是做爲Oracle數據庫的Data Area,實例運行其中,所以不能將共享存儲同時掛在兩個節點上。咱們選擇了使用HA LVM做爲集羣資源的方式進行掛載。事實上,咱們也能夠直接使用腳原本控制/dev/oraclevg/oraclelv的掛載,而不用將其添加到集羣資源中。
二、若是項目中使用的共享存儲是基於NFS方式共享的(NAS),咱們能夠直接將存儲資源同時掛載在集羣節點上,而不用在集羣中添加資源。但RHCS也能夠直接將NFS添加到集羣資源中由集羣動態控制NFS掛載在哪一個節點。這裏再介紹一下NFS文件系統加入集羣資源的方法。假設在主機35.64.6.10上有NFS目錄/nas,集羣節點服務器上有空目錄/share。在集羣中添加該資源的方法爲,「Add」選擇NFS/CIFS Mount:
Name:給NFS掛載取個名字;
Mount Point:掛載到集羣節點的位置,這裏爲/share;
Host:遠程NFS服務器地址,這裏爲35.64.6.10;
NFS Export Directory Name or CIFS Share:遠程NFS服務器上的NFS共享目錄;
其餘默認便可,Force Unmount一樣建議勾選。
集羣資源須要加入資源組中才能真正被集羣中的節點所使用。
點擊「Add」建立資源組:
Service Name:給資源組取個名字;
Automatically Start This Service:自動啓動集羣資源組服務,勾選;
Run Exclusive:集羣服務獨佔方式運行,拒絕其餘集羣服務運行在節點服務器上,這裏是否勾選都行,建議不勾選;
Failover Domain:指定剛纔配置的失敗轉移域;
Recovery Policy:恢復策略,選擇Relocate遷移,一旦節點失效馬上遷移到其餘節點。
Restart Options:節點重啓策略,默認便可。
而後咱們須要爲資源組添加資源,依次添加以前已經配置好的IP Address,HA LVM和Script資源便可。注意Filesystem資源是添加到HA LVM的子資源而不是直接做爲資源組的資源的。完成後如圖:
至此,RHCS集羣配置完成,能夠經過重啓節點設備驗證集羣是否正常工做。或者在RHCS的資源組中進行直接切換:
選擇須要切換到的節點,點擊右側"start"按鈕便可進行切換。
查看狀態:
#1.1 clustat查看集羣狀態(最經常使用) 在節點1查看的,狀態中的Local就在節點1上顯示。 # clustat Cluster Status for new_cluster @ Tue Sep 1 12:23:09 2015 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ heartdb1 1 Online, Local, rgmanager heartdb2 2 Online, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:orares heartdb1 started #1.2 cman_tool status 查看 # cman_tool status Version: 6.2.0 Config Version: 18 Cluster Name: new_cluster Cluster Id: 23732 Cluster Member: Yes Cluster Generation: 432 Membership state: Cluster-Member Nodes: 2 Expected votes: 1 Total votes: 2 Quorum: 1 Active subsystems: 8 Flags: 2node Dirty Ports Bound: 0 177 Node name: heartdb1 Node ID: 1 Multicast addresses: 239.192.92.17 Node addresses: 192.168.1.1 #1.3 cman_tool 查看nodes信息 # cman_tool nodes -a Node Sts Inc Joined Name 1 M 404 2015-08-03 17:52:20 heartdb1 Addresses: 192.168.1.1 2 M 432 2015-09-01 14:32:27 heartdb2 Addresses: 192.168.1.2 2. 集羣正常啓動 先啓動cman,再啓動rgmanager. service cman start service rgmanager start 下面是集羣正常啓動過程示例: 注: 各節點先依次啓動cman再依次啓動rgmanager,注意啓動順序。 # service cman start Starting cluster: Loading modules... done Mounting configfs... done Starting ccsd... done Starting cman... done Starting daemons... done Starting fencing... done [肯定] # service rgmanager start 啓動 Cluster Service Manager:[肯定]
管理集羣:
服務操做 | 描述 | 命令語法 |
---|---|---|
有條件地在首選對象中,根據故障切換域規則自選啓動服務。兩者缺一,則運行 clusvcadm 的本地主機將會啓動該服務。若是原始啓動失敗,則該服務的行爲會相似從新定位請求(請參考本表格中的 |
clusvcadm -e <service_name> 或者 clusvcadm -e <service_name> -m <member> (使用 -m 選項指定要啓動該服務的首選目標成員。) |
|
中止該服務使其處於禁用狀態。當某個服務處於失敗狀態時,這是惟一容許的操做。 | clusvcadm -d <service_name> |
|
將該服務移動到另外一個節點中。您也能夠指定首選節點接受此服務,但若是在那個主機中沒法運行該服務(例如:若是服務沒法啓動或者主機離線),則沒法阻止從新定位,並選擇另外一個節點。rgmanager 嘗試在該集羣的每一個有權限的節點中啓動該服務。若是集羣中的沒有任何有權限的目標能夠成功啓動該服務,則從新定位就會失敗,同時會嘗試在最初擁有者中重啓該服務。若是原始擁有者沒法重啓該服務,則該服務會處於中止的狀態。 |
clusvcadm -r <service_name> 或者 clusvcadm -r <service_name> -m <member> (使用 -m 選項指定要啓動該服務的首選目標成員。) |
|
中止該服務並使其處於中止狀態。 | clusvcadm -s <service_name> |
|
在目前運行某個服務的節點中凍結該服務。這樣會在節點失敗事件中或者 rgmanager 中止時,阻止服務狀態檢查以及故障切換。這可用來掛起服務以便進行基礎資源維護。有關使用凍結和解凍操做的重要信息請參考 「使用凍結和解凍操做的注意事項」一節。 | clusvcadm -Z <service_name> |
|
解凍會使服務脫離凍結狀態。這會從新啓用狀態檢查。有關使用凍結和解凍操做的重要信息請參考 「使用凍結和解凍操做的注意事項」一節。 | clusvcadm -U <service_name> |
|
將虛擬機遷移到另外一個節點中。您必須指定目標節點。根據失敗的狀況,遷移失敗可能致使虛擬機處於失敗狀態,或者在最初擁有者中處於啓動的狀態。 | clusvcadm -M <service_name> -m <member>
重要
在
遷移操做中您必須使用
-m <member> 選項指定目標節點。
|
|
在當前運行該服務的節點中重啓服務。 | clusvcadm -R <service_name> |
本文連接:http://www.cnblogs.com/xshrim/p/5893645.html