當前位置:首頁 » 幣種行情 » ha狀態錯誤eth1失敗

ha狀態錯誤eth1失敗

發布時間: 2025-01-02 18:28:16

① U8伺服器參數配置中負載均衡如何設置

網路的負載均衡是一種動態均衡技術,通過一些工具實時地分析數據包,掌握網路中的數據流量狀況,把任務合理均衡地分配出去。這種技術基於現有網路結構,提供了一種擴展伺服器帶寬和增加伺服器吞吐量的廉價有效的方法,加強了網路數據處理能力,提高了網路的靈活性和可用性。

② redhat 萬兆和千兆的網卡命名問題

新弄了一批機器,為了准備切換到萬兆環境,給機器配了雙千兆和雙萬兆混合的4介面網卡,然後就出了一點問題

centos 7 引入了網路一致化命名規則,具體可以看紅帽的聯網指南

主要部分摘抄如下

------------引用專用分割線----------------------------

8.1. 命名方案層級結構

默認情況下,systemd 會使用以下策略,採用支持的命名方案為介面命名:

方案 1: 如果固件或 BIOS 信息適用且可用,則使用整合了為板載設備提供索引號的固件或 BIOS 的名稱(例如:eno1),否則請使用方案 2。

方案 2: 如果固件或 BIOS 信息適用且可用,則使用整合了為 PCI 快速熱插拔插槽提供索引號的固件或 BIOS 名稱(例如 ens1),否則請使用方案 3。

方案 3: 如果硬體連接器物理位置信息可用,則使用整合了該信息的名稱(例如:enp2s0),否則請使用方案 5。

方案 4:  默認不使用整合介面 MAC 地址的名稱(例如:enx78e7d1ea46da),但用戶可選擇使用此方案。

方案 5: 傳統的不可預測的內核命名方案,在其他方法均失敗後使用(例如: eth0)。

這個策略(如上所述)是默認策略。如果該系統已啟用  biosdevname ,則會使用該方案。註:啟用  biosdevname  需要添加 biosdevname=1 作為命令行參數(Dell 系統除外),此時只要安裝  biosdevname ,就會默認使用該方案。如果用戶已添加  udev  規則,該規則會更高內核設備名稱,則會優先使用這些規則。

設備命名過程如下:

/usr/lib/udev/rules.d/60-net.rules 文件中的規則會讓  udev  幫助工具  /lib/udev/rename_device  查看所有 /etc/sysconfig/network-scripts/ifcfg- suffix  文件。如果發現包含 HWADDR 條目的 ifcfg 文件與某個介面的 MAC 地址匹配,它會將該介面重命名為 ifcfg 文件中由 DEVICE 指令給出的名稱。

/usr/lib/udev/rules.d/71-biosdevname.rules 中的規則讓  biosdevname  根據其命名策略重命名該介面,即在上一步中沒有重命名該介面、已安裝  biosdevname 、且在 boot 命令行中將 biosdevname=0 作為內核命令給出。

/lib/udev/rules.d/75-net-description.rules 中的規則讓  udev  通過檢查網路介面設備,填寫內部  udev  設備屬性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。註:有些設備屬性可能處於未定義狀態。

/usr/lib/udev/rules.d/80-net-name-slot.rules 中的規則讓  udev  重命名該介面,優先順序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。並提供如下信息:沒有在步驟 1 或 2 中重命名該介面,同時未給出內核參數 net.ifnames=0。如果一個參數未設定,則會按列表的順序設定下一個。如果沒有設定任何參數,則不會重命名該介面。

-----------以上是紅帽的聯網指南-------

其實簡述上面的信息就是首先看內核參數是否啟用了biosdevname=1 (默認是啟用),如果bios提供了設備的名稱就使用bios提供的名稱

如果沒有,就根據網卡配置中 device=eth,em,xyz 的名字來命名這個網卡,但是如果這樣命名的話,必須在配置里寫死網卡的mac地址

作為網卡的識別標志,對單網卡當然沒什麼問題,但是如果在集群環境里,HA,以及bonding環境里,為了快速切換網路流量,往往要屏蔽mac,

使用虛擬mac,或者多塊網卡使用一個mac地址,這個時候需要在配置文件里屏蔽mac地址,因此就需要區改udev的配置文件來解決

我所遇到的問題是,使用了biosdevname=0和 net.ifnames=0 參數後,(因為以前有大量的centos6的機器,為了移植方便,不使用一致性命名規則,網卡名依然是eth0,eth1.。。。)安裝伺服器時一切正常,但啟動系統後,發現系統將插在第一個埠的網卡認為是eth2,和預期不符,本能的認為udev可以解決問題,於是添加了udev的規則

```

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xa", ATTR{type}=="1", KERNEL=="*", NAME="eth0"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xb", ATTR{type}=="1", KERNEL=="*", NAME="eth1"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xc", ATTR{type}=="1", KERNEL=="*", NAME="eth2"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xd", ATTR{type}=="1", KERNEL=="*", NAME="eth3"

```

發現不起作用,,難道寫錯了?換個規則,用pci設備號去綁定

SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", SUBSYSTEM=="pci", KERNELS===="0000:01:00.0", NAME="eth0"

依然沒用

用下面的命令debug一下

udevadm test /sys/class/net/eth0

結果縮略如下

rules contain 49152 bytes tokens (4096 * 12 bytes), 13451 bytes strings

2076 strings (25677 bytes), 1399 de-plicated (12904 bytes), 678 trie nodes used

NAME 'eth2' /etc/udev/rules.d/60-net.rules:6

IMPORT builtin 'net_id' /usr/lib/udev/rules.d/75-net-description.rules:6

IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/75-net-description.rules:12

IMPORT builtin 'path_id' /usr/lib/udev/rules.d/80-net-setup-link.rules:5

IMPORT builtin 'net_setup_link' /usr/lib/udev/rules.d/80-net-setup-link.rules:9

No matching link configuration found.

RUN '/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/$name --prefix=/net/ipv4/neigh/$name --prefix=/net/ipv6/conf/$name --prefix=/net/ipv6/neigh/$name' /usr/lib/udev/rules.d/99-systemd.rules:55

Error changing net interface name 'eth0' to 'eth2': File exists

could not rename interface '2' from 'eth0' to 'eth2': File exists

created db file '/run/udev/data/n2' for '/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0'

ACTION=add

DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0

ID_BUS=pci

ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC)

粗體看到原來是設備已經存在,無法重命名,於是想到的重新載入驅動

modprobe -rv igb

modprobe -rv ixgbe

然後按順序載入驅動

modprobe ixgbe

modprobe  igb

終於可以看到效果了,不過重啟就完蛋了

於是想是否可以調整驅動載入順序?

找了半天文檔,發現可以通過重新打包內核啟動文件和編譯內核兩條路實現,不過這顯然又增加了很多麻煩,總不能升級一次內核,就重新打一次包吧

看看其他方法。最好發現簡單的方法就是修改啟動內核的參數 將 biosdevname=0和net.ifnames=0 改為 biosdevname=0和net.ifnames=1 ,這樣系統啟動時,會按照上述一致性命名規則,重新命名網卡,可以預期的是,已dell板載網卡為例,網卡會依次命名為eno1,eno4,等等,然後再載入udev規則,按照udev規則,再次重新命名為我們期望的eth0,eth1,等等

當然配置文件可以用ansible搞定,我這里的模版內容就是

ifcfg-eth0.j2

------

NAME="eth0"

DEVICE="eth0"

ONBOOT=yes

HWADDR="{{ hostvars[inventory_hostname].ansible_eth1.macaddress }}"

NETBOOT=yes

IPV6INIT=no

BOOTPROTO=static

TYPE=Ethernet

----------

這樣udev 規則就生效了,其實就是啟動過程中,當上述兩個參數全為0時,網路設備只能叫ethx,先載入的驅動搶佔了eth0和eth1時,(我這里是千兆的設備驅動 igb先啟動)後起的設備想按udev規則rname時,發現eth0,和eth1 已經被占據了,因此命名失敗,所以深入理解啟動順序和動作其實還是蠻重要的

參考鏈接  https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_device_renaming_procere

紅帽知識庫文章引用如下

③ 雙機熱備核心交換機時間同步嗎

登錄
首頁
學習
實踐
活動
專區
工具
TVP
返回騰訊雲官網
網路技術聯盟站
772 篇文章
關注
原創
防火牆簡單組網方案之雙機熱備
2021-05-14 10:05:16
閱讀 8940
兩台設備,一主一備。

以下是我操作步驟,剛學習深信服設備不久,好多地方不規范,歡迎大家批評指正。

實驗拓撲圖(畫圖是用的process on)

1.劃分區域

2.配置防火牆AF1。
【網路配置】——【介面/區域】,並且配置好介面IP地址等信息。ETH1口配置成外網區域,

ETH3定義成內網區域,將ETH2口定義成HA口。如下圖:

3.介面總覽
4.默認上網路由和回指路由
5.防火牆AF1
進入【高可用性】配置介面,選擇本端ETH2介面作為雙機通信口,填寫對端地址

10.10.9.10,如下圖:

6.防火牆AF1
啟用雙機熱備,進入雙擊熱備配置介面,點擊新增,定義虛擬組為100,防火牆AF1優先順序

為100,勾選搶占,雙機檢測口為ETH3與ETH1,如下圖:

7.防火牆AF1
進入配置同步介面,選擇四種配置同步,如下圖:

8.配置防火牆AF2,配置ETH2介面IP信息。
如下圖:

9.防火牆AF2
進入高可用性配置介面,基本信息,選擇本端介面ETH2。

對端通信IP地址10.10.9.9。如下圖:

10.防火牆AF2
進入雙擊熱備配置介面,設置與對端設備一樣的虛擬組100,

優先順序設置為90,設備不搶占,心跳時間設置與對端設備一致。如下圖:

11.防火牆AF2
配置同步

12.將防火牆AF1和防火牆AF2都斷電,並且接好在線架。
防火牆AF1先開機,待防火牆AF1開機後,再開啟防火牆AF2。

防火牆AF2起來後,防火牆AF1會向防火牆AF2同步配置。

注意開機順序不能反。

13.定義對象
14.地址轉換
15.應用控制策略(內網到外網的放行)
16.安全防護策略(上網場景,伺服器訪問場景)
原創聲明,本文系作者授權騰訊雲開發者社區發表,未經許可,不得轉載。如有侵權,請聯系 [email protected] 刪除。

關注作者,閱讀全部精彩內容
關注
防火牆
文章來自專欄
網路技術聯盟站
772 篇文章127 人關注
訂閱
評論 (0)
寫評論
暫無人發表評論

相關文章
雙機熱備方案及雙機熱備軟體選擇
企事業機構

④ linux下的伺服器雙機熱備份,如何做

Linux上的heartbeat雙機熱備服務架設
【一】 安裝前環境設定

兩台主機硬體環境(不必完全一致):

CPU: Xeon 3G *2 (EM64T)

MEM: 2G

NIC: Intel 1G *2

eth0: 對外IP

eth1: 對內IP(HA專用)

兩台主機的eth1使用雙機對聯線直接連接。

分區方式:

Filesystem 容量 掛載點

/dev/sda2 9.7G /

/dev/sda6 45G /Datas

/dev/sda1 99M /boot

none2.0G /dev/shm

/dev/sda3 9.7G /opt

另外每台主機應預留500M的raw空間或者更多來作為共用空間被HA使用。

操作系統:

RedHat Enterprise 4 Update2 (2.6.9-22 EL)

預安裝軟體:

@ X Window System

@ GNOME Desktop Environment

@ KDE Desktop Environment

@ Editors

@ Engineering and Scientific

@ Graphical Internet

@ Text-based Internet

@ Authoring and Publishing

@ Server Configuration Tools

@ Development Tools

@ Kernel Development

@ X Software Development

@ GNOME Software Development

@ KDE Software Development

@ Administration Tools

@ System Tools

【二】安裝前網路環境設定:

node1: 主機名:servers201 ( HA01 )

eth0: 192.168.10.201 //對外IP地址

eth1: 10.0.0.201 //HA心跳使用地址

node2: 主機名:servers202 ( HA02 )

eth0: 192.168.10.202 //對外IP地址

eth1: 10.0.0.202 //HA心跳使用地址

特別注意要檢查以下幾個文件:

/etc/hosts

/etc/host.conf

/etc/resolv.conf

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

/etc/nsswitch.conf

#vi /etc/hosts

node1的hosts內容如下:

127.0.0.1 localhost.localdomain localhost

192.168.10.201 servers201 HA01

10.0.0.201 HA01

10.0.0.202 HA02

192.168.10.202 server202

node2的hosts內容如下:

127.0.0.1 localhost.localdomain localhost

192.168.10.202 servers202 HA02

10.0.0.202 HA02

10.0.0.201 HA01

192.168.10.201 server201

#cat /etc/host.conf

order hosts,bind

#cat /etc/resolv.conf

nameserver 61.139.2.69 //DNS地址

#cat /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=servers201 //主機名

GATEWAY="192.168.10.1" //網關

GATEWAY="eth0" //網關使用網卡

ONBOOT=YES //啟動時載入

FORWARD_IPV4="yes" //只允許IPV4

#cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.10.201

NETMASK=255.255.255.0

GATEWAY=192.168.10.1

TYPE=Ethernet

IPV6INIT=no

#cat /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

IPADDR=10.0.0.201

NETMASK=255.255.255.0

TYPE=Ethernet

[node1] 與 [node2] 在上面的配置中,除了

/etc/hosts

/etc/sysconfig/network

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

要各自修改外,其他一致。

配置完成後,試試在各自主機上ping對方的主機名,應該可以ping通:

/root#ping HA02

PING HA02 (10.0.0.202) 56(84) bytes of data.

64 bytes from HA02 (10.0.0.202): icmp_seq=0 ttl=64 time=0.198 ms

64 bytes from HA02 (10.0.0.202): icmp_seq=1 ttl=64 time=0.266 ms

64 bytes from HA02 (10.0.0.202): icmp_seq=2 ttl=64 time=0.148 ms

--- HA02 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 0.148/0.204/0.266/0.048 ms, pipe 2

【三】安裝HA 與HA依賴包

rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm //可以不裝

rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm

rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm

rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm

rpm -Uvh ipvsadm-1.24-5.i386.rpm

【四】 配置 HA的各配置文件

配置心跳的加密方式:authkeys

#vi /etc/ha.d/authkeys

如果使用雙機對聯線(雙絞線),可以配置如下:

#vi /etc/hc.d/authkeys

auth 1

1 crc

存檔退出,然後

#chmod 600 authkeys

配置心跳的監控:haresources

#vi /etc/ha.d/haresources

各主機這部分應完全相同。

server201 IPaddr::192.168.10.200 ipvsadm httpd

指定 server201調用ipvsadm啟動http服務,系統附加一個虛擬IP 192.168.10.200 給eth0:0

這里如果server201宕機後,server202可以自動啟動http服務,並新分配IP 192.168.10.200給server202的eth0:0

配置心跳的配置文件:ha.cf

#vi /etc/ha.d/ha.cf

logfile /var/log/ha_log/ha-log.log ## ha的日誌文件記錄位置。如沒有該目錄,則需要手動添加

bcast eth1 ##使用eth1做心跳監測

keepalive 2 ##設定心跳(監測)時間時間為2秒

warntime 10

deadtime 30

initdead 120

hopfudge 1

udpport 694 ##使用udp埠694 進行心跳監測

auto_failback on

node server201 ##節點1,必須要與 uname -n 指令得到的結果一致。

node server202 ##節點2

ping 192.168.10.1 ##通過ping 網關來監測心跳是否正常。

respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=root uid=root

debugfile /Datas/logs/ha_log/ha-debug.log

設置ipvsadm的巡迴監測

ipvsadm -A -t 192.168.10.200:80 -s rr

ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.201:80 -m

ipvsadm -a -t 192.168.10.200:80 -r 192.168.10.202:80 -m

執行後進行監測:

#ipvsadm --list

如果返回結果與下相同,則設置正確。

IP Virtual Server version 1.2.0 (size=4096)

Prot LocalAddress:Port Scheler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.10.200:http rr

-> server202:http Local 1 0 0

-> server201:http Masq 1 0 0

【五】 HA服務的啟動、關閉以及測試

啟動HA: service heartbeat start

關閉HA; service heartbeat stop

系統在啟動時已經自動把heartbeat 載入了。

使用http服務測試 heartbeat

首先啟動httpd服務

#service httpd start

編輯各自主機的測試用html文件,放到/var/www/html/目錄下。

啟動node1的heartbeat,並執行這個指令進行監控: heartbeat status

【六】 防火牆設置

heartbeat 默認使用udp 694埠進行心跳監測。如果系統有使用iptables 做防火牆,應記住把這個埠打開。

#vi /etc/sysconfig/iptables

加入以下內容

-A RH-Firewall-1-INPUT -p udp -m udp --dport 694 -d 10.0.0.201 -j ACCEPT

意思是udp 694埠對 對方的心跳網卡地址 10.0.0.201 開放。

#service iptables restart

重新載入iptables。

⑤ 虛擬機問題(所用版本WMvare 5.51)

1.安裝vmware server軟體
從www.vmware.com下載vmware server 1.0 for linux軟體,安裝過程很簡單,基本上是一路Enter.只是需要sn,在這里提供幾個使用
928WH-Y65AW-21394-4C70J,92EY4-Y4NAT-23L07-4U7CH,9AWPN-Y400W-2179N-4K5HM
安裝vmware server console,以便遠程管理vmware server
2.安裝虛擬伺服器操作系統
我用的是OS是Redhat AS4,kernel 2.6.9-22,虛擬出兩塊網卡,開始安裝操作系統,主機名叫ha1pub,eth0:10.1.250.17,eth1:192.168.100.100.具體過程省略.安裝結束後,使用ntsysv命令,關閉掉一些不常使用的進程,只留下一下一些需要的,如ssh,ftp等等.然後關機!
然後cp ha1pub的所有配置文件到一個新的目錄,在虛擬機console裡面打開,就會出現一個新的系統,但是由於裡面的ip信息和第一台機器的重復,進入系統後修改一下
編輯/etc/sysconfig/network文件,將ha1pub修改為ha2pub,然後修改ip,eth0:10.1.250.18,eth1:192.168.100.200.
注意,redhat系統裡面,ip的配置文件ifcfg-eth文件裡面,有可能包含mac地址的信息,需要刪除掉,否則會mac地址重復的錯誤.ha2pub也關機
3.設置共享存儲
由於安裝RAC需要共享存儲,所以必須為兩台機器設置共享存儲,我使用vmware-vdiskmanager命令創建一些虛擬硬碟
________________________________________________________________________
vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "/vmware/share/ocfs.vmdk" |用於Oracle集群注冊表文件和CRS表決磁碟
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm1.vmdk" |用於Oracle的數據文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm2.vmdk" |用於Oracle的數據文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm3.vmdk" |用於Oracle的數據文件
________________________________________________________________________
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "/vmware/share/asm4.vmdk" |用於Oracle的閃回恢復區
____________________________________________________________________

然後分別在兩個虛擬伺服器的的配置文件,ha1.vmx和ha2vmx文件裡面添加如下信息
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "/vmware/share/ocfs.vmdk"
scsi1:1.deviceType = "disk"

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "/vmware/share/asm1.vmdk"
scsi1:2.deviceType = "disk"

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "/vmware/share/asm2.vmdk"
scsi1:3.deviceType = "disk"

scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "/vmware/share/asm3.vmdk"
scsi1:4.deviceType = "disk"

scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "/vmware/share/asm4.vmdk"
scsi1:5.deviceType = "disk"

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
保存後,打開vmware console就可以看到添加的硬碟,啟動ha1pub和ha2pub!隨便進入一台系統,用fdisk格式化這些新添加的硬碟.
fdisk -l可以看到如下
__________________________________________________________________
Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 275 2104515 82 Linux swap
/dev/sda3 276 1958 13518697+ 83 Linux

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 130 1044193+ 83 Linux

Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdc1 1 261 2096451 83 Linux

Disk /dev/sdd: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdd1 1 261 2096451 83 Linux

Disk /dev/sde: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sde1 1 261 2096451 83 Linux

Disk /dev/sdf: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdf1 1 261 2096451 83 Linux
____________________________________________________________________

修改/etc/hosts文件,如下所示
127.0.0.1 localhost(這里必須這樣修改,否則RAC節點名出現在回送地址中,安裝RAC期間可能會報錯)
10.1.250.17 ha1pub
10.1.250.18 ha2pub

192.168.100.100 ha1prv
192.168.100.200 ha2prv

10.1.250.19 ha1vip
10.1.250.20 ha2vip

4.調整網路設置,設置共享內存和信號參數
分別在ha1pub和ha2pub上,編輯/etc/sysctl.conf文件,添加如下信息,這些信息可以根據自己的機器實際情況來調整
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

5. 配置 hangcheck-timer 內核模塊
該模塊是用來監控集群的狀態情況,linux as4中已經安裝了此模塊,使用下面的命令確認
find /lib/moles -name "hangcheck-timer.o" 看看有沒有,如果有,配置並載入該模塊
#echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local
#modprobe hangcheck-timer
#grep Hangcheck /var/log/messages | tail -2
Jul 31 15:01:49 ha2pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).
如果看到上面的信息,說明模塊的設置工作正確
6. 在兩個節點上創建oracle用戶和目錄
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
以oracle用戶登陸,分別建立兩個目錄
mkdir /home/oracle/app 用於安裝oracle 資料庫
mkdir /home/oracle/orcl 用於Oracle 集群文件系統 (OCFS) 的掛載點

修改oracle用戶的.bash_profile文件如下所示
__________________________________________________________________
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export ORA_CRS_HOME=/home/oracle/app/oracle/proct/10.2.0/crs/
export ORACLE_SID=orcl1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
________________________________________________________________________
注意,在第二個節點上,修改SID=orcl2

7.建立節點之間的互信
我採用的是ssh,具體過程有很多文檔說明,這里省略.分別要建立root用戶,oracle用戶的互信.
然後在分別以root用戶,oracle在兩個節點上執行如下命令
ssh localhost
ssh ha1pub
ssh ha2pub
ssh ha1prv
ssh ha2prv
8.安裝配置ocfs2
從http://oss.oracle.com/projects/ocfs2/下載與自己操作系統版本相符合的ocfs,ocfs console
比如我的內核是2.6.9-22.EL,於是我下載的就是ocfs2-2.6.9-22.EL-1.2.2-1.i686.rpm,這點非常重要
安裝很簡單,把該下載的包都下載了rpm安裝就ok了
8.1 ocfs2的配置
先使用下面命令禁用SElinux
#system-config-securitylevel &
然後在集群中的每個節點上生成和配置 /etc/ocfs2/cluster.conf
可以使用ocfs2console命令調出圖形界面,將ha1pub和ha2pub兩個節點都加入,點擊apply,然後退出.
在/etc/ocfs2/目錄下面將有cluster.conf文件,內容應該如下
______________________________________________________
node:
ip_port = 7777
ip_address = 10.1.250.17
number = 0
name = ha1pub
cluster = ocfs2

node:
ip_port = 7777
ip_address = 10.1.250.18
number = 1
name = ha2pub
cluster = ocfs2

cluster:
node_count = 2
name = ocfs2
________________________________________________________
接著編輯 /etc/init.d/o2cb, 刪除開始帶 #的配置行
然後 /etc/init.d/o2cb offline ocfs2
/etc/init.d/o2cb unload ocfs2
/etc/init.d/o2cb configure ocfs2 輸入y就ok了
8.2 創建ocfs2文件系統
mkfs.ocfs2 -b 4k -C 32k -L oradatafiles /dev/sdb1
然後掛載ocfs2文件系統
mount -t ocfs2 -o datavolume /dev/sdb1 /home/oracle/orcl
修改/etc/fstab,添加
/dev/sdb1 /home/oracle/orcl ocfs2 _netdev,datavolume 0 0
8.3 調O2CB的心跳閥值
修改文件/etc/sysconfig/o2cb將O2CB_HEARTBEAT_THRESHOLD 設置為 301
修改文件 /etc/sysconfig/o2cb 後,需要更改 o2cb 配置。同樣,應在集群的所有節點上執行以下操作。
# umount /home/oracle/orcl/
# /etc/init.d/o2cb unload
# /etc/init.d/o2cb configure
reboot兩個節點
9. 安裝,配置自動存儲管理ASM2.0
可以從http://www.oracle.com/technology ... x/asmlib/rhel4.html這里下載相關rpm包
rpm安裝過程省略
執行/etc/init.d/oracleasm configure
默認用戶輸入oracle,默認組輸入dba,其他都y,y就可以了
9.1創建ASM磁碟
在一個節點上執行
/etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
/etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
/etc/init.d/oracleasm createdisk VOL3 /dev/sde1
/etc/init.d/oracleasm createdisk VOL4 /dev/sdf1
創建好後,執行/etc/init.d/oracleasm listdisks可以看到
VOL1
VOL2
VOL3
VOL4
然後在另外一個節點上執行
/etc/init.d/oracleasm scandisks
完成後執行
/etc/init.d/oracleasm listdisks應該可以看到和的一個節點相同的內容
10. 安裝Oracle 10G cluster軟體
從oracle網站下載10201_clusterware_linux32
以oracle用戶登錄,unset掉一些環境變數,如下
$ unset ORA_CRS_HOME
$ unset ORACLE_HOME
$ unset ORA_NLS10
$ unset TNS_ADMIN

開始安裝cluster軟體
./runInstaller -ignoreSysPrereqs
*確認安裝目錄是/home/oracle/app/oracle/proct/10.2.0/crs/
*如果願意可以將clustername由crs修改成其他的名稱
*添加兩個節點,如下所示
____________________________________________________________________
Public Node Name Private Node Name Virtual Node Name
ha1pub ha1prv ha1vip
ha2pub ha2prv ha2vip
____________________________________________________________________
*要修改一下eth0的類型,他默認的是private,修改為public
*指定OCR和mirror的路徑
Specify OCR Location: /home/oracle/orcl/OCRFile
Specify OCR Mirror Location:/home/oracle/orcl/OCRFile_mirror
*指定Voting磁碟路徑
Voting Disk Location: /home/oracle/orcl/CSSFile
Additional Voting Disk 1 Location:/home/oracle/orcl/CSSFile_mirror1
Additional Voting Disk 2 Location:/home/oracle/orcl/CSSFile_mirror2
*安裝快結束時.會要求以root執行orainsRoot.sh和root.sh腳本,以root用戶打開一個新的終端,一個一個節點順序執行,千萬不要搶時間一起執行
*執行最後一個root.sh的時候,可能會報""eth0" is not public.Public interfaces should be used to configure virtual IPs."這樣的錯誤.這時候需要以root用戶去執行$ORA_CRS_HOME/bin/vipca,選擇兩個節點,配置一下虛擬ip的信息.
至此,clusterware安裝就ok了,檢查一下集群節點
$ORA_CRS_HOME/bin/olsnodes -n
ha1pub 1
ha2pub 2

11. 安裝Oracle 10g軟體
從oracle網站下載10201_database_linux32
unset掉一些環境變數
$ unset ORA_CRS_HOME
$ unset ORACLE_HOME
$ unset ORA_NLS10
$ unset TNS_ADMIN
Oracle的安裝省略,既然敢玩RAC,肯定以前也安裝過oracle,只是有些地方需要注意
*節點的選擇上,一定要選上所有的節點
*選擇 "Install database software only",先不要建instance,等資料庫安裝完畢後時候dbca創建
*安裝完成後,需要執行root.sh腳本,不要著急,一個節點一個節點執行
12. 建立TNS偵聽
以oracle用戶執行
$ netca &
*選擇所有節點
*選擇Listener configuration
*其他的都選擇默認即可
結束後可以驗證一下偵聽是否已經在所有節點上運行
ps -ef|grep LISTEN
應該可以看到
/home/oracle/app/oracle/proct/10.2.0/db_1/bin/tnslsnr LISTENER_HA1PUB -inherit
另外一個節點應該是
/home/oracle/app/oracle/proct/10.2.0/db_1/bin/tnslsnr LISTENER_HA2PUB -inherit
13. 創建資料庫實例
以oracle用戶在任一節點執行
dbca &
*選擇 Create a Database
*選擇所有節點
*選擇Custom Database
*全局資料庫名輸入orcl,SID也是orcl
*選擇使用相同的密碼對所有用戶
*存儲選項選擇 use ASM
*修改「Create server parameter file (SPFILE)」為 /home/oracle/orcl/dbs/spfile+ASM.ora。所有其他選項可以保留其默認值。
*在ASM Disk Groups配置界面,選擇Create New,會顯示之前通過ASMlib創建的4個卷VOL1到VOL4
選擇前三個,VOL1,VOL2,VOL3,Disk group name輸入DATA,Rendancy,選擇Normal,單擊ok,完成後再次單擊Create New.選擇最後一個VOL4,Disk group name輸入FLASH_RECOVERY_AREA, Rendancy選擇External,單擊ok,完成ASM的磁碟組創建.
*Database File Locations 選擇DATA
*Recovery Configuration 選擇FLASH_RECOVERY_AREA
*Database Content由於是測試,可以取消掉所有選項
*Service name 可以輸入orcltest,TAF Policy選擇Basic
*Database Storage 根據自己系統的硬體條件可以更改一些參數.
完成dbca,Oracle RAC就可以所已經完全安裝成功了!

14. RAC的啟動和關閉
如果都遵循了上面的安裝步驟,那麼每次節點重新啟動的時候,所有服務都會自動啟動,如果需要關閉或者啟動某個節點,如下所示
*停止RAC
1.emctl stop dbconsole
2.srvctl stop instance -d orcl -i orcl1
3.srvctl stop asm -n ha1pub
4.srvctl stop nodeapps -n ha1pub
*啟動RAC
和上面的步驟正好相反即
1.srvctl start nodeapps -n ha1pub
2.srvctl start asm -n ha1pub
3.srvctl start instance -d orcl -i orcl1
4.srvctl start dbconsole

15. RAC的驗證和測試
有很多文檔寫的都很詳細,本文就不贅述了

16. 參考文檔
在 Linux 和 FireWire 上構建您自己的 Oracle RAC 10g 第 2 版集群
作者:Jeffrey Hunter
http://www.oracle.com/technology ... unter_rac10gr2.html

熱點內容
聯通卡有合約不用了怎麼辦 發布:2025-01-02 20:11:43 瀏覽:693
寧波火車站去寧波客運中心站 發布:2025-01-02 20:10:37 瀏覽:565
我的世界連鎖挖礦添加指令 發布:2025-01-02 19:33:49 瀏覽:989
貨幣限制高倍合約是怎麼回事 發布:2025-01-02 19:33:09 瀏覽:13
eth錢包包括 發布:2025-01-02 19:32:20 瀏覽:412
幣圈十大神仙 發布:2025-01-02 19:13:33 瀏覽:6
usdt會像比特幣一樣暴漲嘛 發布:2025-01-02 19:07:09 瀏覽:289
全球有多少比特幣ATM機 發布:2025-01-02 19:05:32 瀏覽:990
天翼合約怎麼注銷 發布:2025-01-02 19:01:22 瀏覽:981
以太坊erc20代幣開發要多少 發布:2025-01-02 18:52:45 瀏覽:69