Exadata刷機快速參考

本文以Exadata X8 HC 1/4 rack爲例,介紹整個Exadata刷機的步驟。
我理解刷機最關鍵的就兩大步驟:第一步是全部機器刷OS,第二步是使用OEDA一鍵刷機。至於其它全部工做都是在爲這兩步作準備。本着對之後刷機能夠快速參考,梳理細節步驟以下:html

1.使用最新版的OEDA進行配置

根據888828.1文檔下載最新版的OEDA,建議同時下載本身電腦版本和服務器版本。

使用適配本身電腦版本的OEDA,根據實際刷機需求進行配置,最終會生成一系列配置文件(主要有customer-rack-InstallationTemplate.html、customer-rack-preconf_xxx.csv、customer-rack.xml等)。linux

注:這一環節須要同時摸清楚現場狀況,肯定網絡規劃(包含Admin、Client、Private網絡IP規劃)、確承認用的DNS、NTP服務器,這些信息在OEDA配置時都會用到。
同時建議準備好配置PXE服務器的環境(可使用跳起色,也可使用本身準備的虛擬機,後面有具體PXE服務搭建步驟)。shell

2.下載刷機所需介質

此步須要下載全部刷機用到的介質:

1)OS介質(包含DB節點和CELL節點的OS介質)
2)根據上步OEDA的配置結果,從生成的customer-rack-InstallationTemplate.html文件中的Appendix B部分,下載列表中全部介質(一般包含GI、DB、對應補丁以及AHF)數據庫

3.修改preconf.csv配置文件

根據OEDA的配置結果,從生成的customer-rack-preconf_xxx.csv,爲了簡潔直接cp一份preconf.csv文件,而後修改該文件,加入MAC地址信息(第7列兩個逗號之間,注意順序必定要對應正確)。

注:這一環節能夠梳理出各機器對應的MAC地址,並整理好下載的介質、preconf.csv、customer-rack.xml等配置文件,後面步驟都會用到。服務器

--梳理本次刷機環境的各機器名及其eth0對應的MAC(在ILOM下查看eth0的MAC地址命令:show /SYS/MB/NET0):
dbm08dbadm02  00:10:e0:e9:55:fa
dbm08dbadm01  00:10:e0:e6:cb:6a
dbm08celadm03 00:10:e0:e9:63:80
dbm08celadm02 00:10:e0:e8:d9:32
dbm08celadm01 00:10:e0:e9:62:c0

注:這裏的dbm08就是rack的名字,是自定義的,由於這裏使用rack顯示很差,因此使用本次真實的rack名稱代替。網絡

4.PXE環境部署所需服務

主要須要部署並配置tftp、dhcp、http服務。

4.1 安裝配置tftp:
安裝tftp:
tftp server是基於xinetd的服務,須要安裝xinetd、tftp、tftp-serveroracle

# yum -y install xinetd tftp tftp-server

配置tftp:app

# vi /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

# vi /usr/lib/systemd/system/tftp.service
[Service]
ExecStart=/usr/sbin/in.tftpd -s /tftpboot

建立目錄/tftpboot:
# mkdir /tftpboot

啓動tftp:
# systemctl daemon-reload
# systemctl start tftp

查看tftp:
# systemctl status tftp

設置開機啓動:
# systemctl enable tftp

安裝syslinux:運維

# mkdir /tftpboot/pxelinux.cfg
# yum -y install syslinux
# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
# ls /tftpboot/
pxelinux.0  pxelinux.cfg
#

測試ftp:dom

#cd /tmp
#tftp 192.168.18.250
tftp> get pxelinux.0
tftp> quit
#
# ls pxelinux.0
pxelinux.0
#
##注意selinux要關閉

4.2 安裝配置DHCP
編輯配置文件:vi /etc/dhcp/dhcpd.conf

set vendorclass = option vendor-class-identifier;
option pxe-system-type code 93 = unsigned integer 16;
set pxetype = option pxe-system-type;

ddns-update-style none;
allow booting;
allow bootp;

subnet  192.168.18.0 netmask 255.255.255.0 {
  option subnet-mask              255.255.255.0;
  option routers                  192.168.18.250;
  option domain-name "customerbj.com";
  option domain-name-servers 192.168.18.250;
  range dynamic-bootp 192.168.18.121 192.168.18.140;
  default-lease-time 21600;
  max-lease-time 43200;
  # Enable UEFI Netboot
  if substring(vendorclass, 0, 9)="PXEClient" {
    if pxetype=00:06 or pxetype=00:07 {
      filename "efi/BOOTX64.efi"; 
    } else {
      filename "pxelinux.0";
    }
  }
  next-server 192.168.18.250;
    host dbm08dbadm02 {
      hardware ethernet 00:10:e0:e9:55:fa;
      fixed-address 192.168.18.2;
    }
    host dbm08dbadm01 {
      hardware ethernet 00:10:e0:e6:cb:6a;
      fixed-address 192.168.18.1;
    }
    host dbm08celadm03 {
      hardware ethernet 00:10:e0:e9:63:80;
      fixed-address 192.168.18.5;
    }
    host dbm08celadm02 {
      hardware ethernet 00:10:e0:e8:d9:32;
      fixed-address 192.168.18.4;
    }
    host dbm08celadm01 {
      hardware ethernet 00:10:e0:e9:62:c0;
      fixed-address 192.168.18.3;
    }
    host vm-pxe { 
      hardware ethernet 00:10:e0:79:8b:b5; 
      fixed-address 192.168.18.250; 
      next-server 192.168.18.250;
    }
}

Note:這裏遇到一個問題,先記錄下留做後續思考:就是起初next-server部分,fixed-address對應的IP地址配置錯誤沒發現,但最終也沒影響到OS安裝?是由於DHCP這部分沒用嗎?

啓動DHCP服務並設置開機自啓:

啓動dhcp:
# systemctl start dhcpd

查看dhcp狀態:
# systemctl status dhcpd

檢查dhcp是否開機啓動:
# systemctl list-unit-files |grep dhcp

設置開機啓動dhcp:
# systemctl enable dhcpd

4.3 安裝配置http服務
Linux7對應的設置爲:

# vi /etc/httpd/conf.d/pxe.conf 

Alias /tftpboot /tftpboot
<Directory /tftpboot>
  Options indexes FollowSymLinks
  Allow from all
  Require all granted
</Directory>

測試http服務正常:

# vi /tftpboot/http.txt
「http test」
# wget http://127.0.0.1/tftpboot/http.txt
# curl http://127.0.0.1/tftpboot/http.txt
--有正確返回無報錯表示配置沒問題。

# systemctl start httpd
# systemctl stop httpd
# systemctl status httpd

5.使用PXE快速安裝全部節點系統

使用PXE快速安裝全部DB節點和CELL節點的操做系統。

5.1 系統介質準備:

[root@x52-103218 tftpboot]# unzip V1004139-01.zip
[root@x52-103218 tftpboot]# unzip V1004140-01.zip

5.2 準備.EFI文件:
解壓OS鏡像文件:
掛載鏡像文件,提取efi相關文件:

# mount -o loop /tftpboot/compute_20.1.3.0.0_LINUX.X64***.iso /20isodb
# ls /20isodb/EFI/BOOT
BOOTX64.efi  grub.cfg  grubx64.efi  mmx64.efi  TRANS.TBL
複製三個*.efi到/tftpboot/efi目錄下:(這幾個文件cell與db是相同的)
# mkdir /tftpboot/efi
# cp /20isodb/EFI/BOOT/*.efi /tftpboot/efi
# cp /20isodb/cellbits/commonos.tbz /tmp
# tar -xvf /tmp/commonos.tbz
解壓後會有shim-x64-15-2.0.7.el7.x86_64.rpm文件:
# rpm2cpio shim-x64-15-2.0.7.el7.x86_64.rpm| cpio -idmv
./boot/efi/EFI/BOOT/BOOTX64.EFI
./boot/efi/EFI/BOOT/fbx64.efi
./boot/efi/EFI/redhat/BOOT.CSV
./boot/efi/EFI/redhat/BOOTX64.CSV
./boot/efi/EFI/redhat/mmx64.efi
./boot/efi/EFI/redhat/shim.efi
./boot/efi/EFI/redhat/shimx64.efi
./etc/yum/protected.d/shim-x64.conf
10051 blocks
# cp ./boot/efi/EFI/redhat/shim.efi  /tftpboot/efi
# cp ./boot/efi/EFI/redhat/shimx64.efi /tftpboot/efi
# ls /tftpboot/efi/
BOOTX64.efi  grubx64.efi  mmx64.efi  shim.efi shimx64.efi
查看文件權限:
rwx------. 1 root root   1203584 Nov  8 08:56 shim.efi
須要修改成755:
#chmod 755 shim.efi

#cd /tmp
# wget http://192.168.18.250/tftpboot/efi/shim.efi
可以成功wget代表配置正確。

BOOTX64.efi  grubx64.efi  mmx64.efi  shim.efi shimx64.efi

上面這幾個都是efi引導文件,須要在dhcpd.conf文件中進行配置:filename "efi/BOOTX64.efi"; 實際這裏須要測試確認是否適配,好比本次刷機X8-2使用的是BOOTX64.efi,聽說有的系統可能須要使用shim.efi或shimx64.efi才能夠,目前我尚未實際遇到。

5.3 配置啓動文件:
計算節點的啓動引導文件:vi /tftpboot/efi/db

set default 0
set timeout=10

menuentry 'Exadata Compute Node' {
  echo "Loading efi/vmlinuz"
  linuxefi efi/vmlinux-iso-20.1.3.0.0-201023-compute stit dhcp pxe boot-from=uefi factory reboot-on-success notests=diskgroup iso_uri=http://192.168.18.250/tftpboot/compute_20.1.3.0.0_LINUX.X64_201023-1.x86_64.iso preconf=http://192.168.18.250/tftpboot/preconf.csv console=ttyS0,115200n8

  echo "Loading efi/initrd.img"
  initrdefi efi/initrd-iso-20.1.3.0.0-201023-compute.img

  echo "Booting installation kernel"
}

存儲節點的啓動引導文件:vi /tftpboot/efi/cell

set default 0
set timeout=10

menuentry 'Exadata Storage Cell' {
  echo "Loading efi/vmlinuz"
  linuxefi efi/vmlinux-iso-20.1.3.0.0-201023-cell stit dhcp pxe boot-from=uefi factory reboot-on-success notests=diskgroup iso_uri=http://192.168.18.250/tftpboot/cell_20.1.3.0.0_LINUX.X64_201023-1.x86_64.iso preconf=http://192.168.18.250/tftpboot/preconf.csv console=ttyS0,115200n8

  echo "Loading efi/initrd.img"
  initrdefi efi/initrd-iso-20.1.3.0.0-201023-cell.img

  echo "Booting installation kernel"
}

要確保上述路徑和文件名均正確:

把鏡像軟件解壓出的initrd-iso* 和vmlinux-iso*文件複製到/tftpboot/efi目錄下:
# mv initrd-iso* vmlinux-iso* /tftpboot/efi/
把*.iso和*.iso.md5放到/tftpboot目錄下:
# cp *.iso *.iso.md5 /tftpboot

把OEDA工具生成的網絡配置文件preconf.csv放到/tftpboot目錄下:
# cat /tftpboot/preconf.csv
在preconf.csv文件中須要把各個主機NET0的MAC加入到Management後面
請確保preconf.csv文件裏面已經添加了eth0對應的mac地址,在安裝系統過程當中會將IP配置信息設置到對應的主機上.

配置文件:這裏的格式要求爲:grub.cfg-01-MAC地址(要小寫,且中間使用中劃線替代冒號),例以下面這樣:

dbm08:
cp db grub.cfg-01-00-10-e0-e9-55-fa
cp db grub.cfg-01-00-10-e0-e6-cb-6a
cp cell grub.cfg-01-00-10-e0-e9-63-80
cp cell grub.cfg-01-00-10-e0-e8-d9-32
cp cell grub.cfg-01-00-10-e0-e9-62-c0

5.4 開始安裝系統:
登陸到各節點的ILOM,設置並開始安裝系統:
dbm08: 192.168.18.6~10,以第一臺爲例:

# ssh 192.168.18.6

設置下次開機啓動設備爲PXE:
-> set /HOST boot_device=pxe
Set 'boot_device' to 'pxe'

-> show /HOST boot_device
 /HOST
    Properties:
        boot_device = pxe

重啓系統:
-> reset /System
Are you sure you want to reset /System (y/n)? y
Performing hard reset on /System

登陸控制檯查看安裝信息:
-> start /SP/console
Are you sure you want to start /SP/console (y/n)? y
Serial console started.  To stop, type ESC (

進入控制檯查看:

… 顯示整個安裝過程

可使用imageinfo來查看全部節點的系統信息:
特別注意安裝版本和激活日期,確認reimage成功,通常存儲節點的安裝就緒時間要短於計算節點,耐心等待。

6.使用OEDA進行一鍵刷機

6.1 上傳介質及配置文件
把OEDA軟件(服務器版本)及相關介質傳送到第一臺數據庫主機上:

# mkdir -p /u01/soft/onecommand
cd /u01/soft/onecommand
scp 192.168.18.250:/u01/media/p30640393_201300_Linux-x86-64.zip ./
unzip p30640393_201300_Linux-x86-64.zip
cd linux-x64/WorkDir/
scp 192.168.18.250:/u01/media/p* ./
scp 192.168.18.250:/u01/media/ahf_setup ./
scp 192.168.18.250:/u01/media/V98206* ./

上傳OEDA生成的customer-rack.xml文件:
# scp 192.168.18.250:/u01/media/customer* /u01/soft/onecommand/linux-x64

6.2 運行reclaimdisks.sh:
這步實際會釋放pvs/vgs/lvs相對應的剩餘空間,本次就釋放3T+,以前也遇到過有些環境會直接提示不適用,那就不用操做。

查看當前的分區信息:
# /opt/oracle.SupportTools/reclaimdisks.sh -check
在一鍵部署前須要先在全部數據庫節點上運行reclaimdisks.sh:
# /opt/oracle.SupportTools/reclaimdisks.sh -free -reclaim

6.3 執行一鍵部署
列出全部步驟:

# cd /u01/soft/onecommand/linux-x64/
# ./install.sh -cf customer-rack.xml -l
Initializing

1. Validate Configuration File
2. Setup Required Files
3. Create Users
4. Setup Cell Connectivity
5. Verify Infiniband
6. Calibrate Cells
7. Create Cell Disks
8. Create Grid Disks
9. Install Cluster Software
10. Initialize Cluster Software
11. Install Database Software
12. Relink Database with RDS
13. Create ASM Diskgroups
14. Create Databases
15. Create Pluggable Databases
16. Apply Security Fixes
17. Install Autonomous Health Framework
18. Create Installation Summary
19. Resecure Machine

能夠一步一步執行:

# nohup /u01/soft/onecommand/linux-x64/install.sh -cf customer-rack.xml -s 1 &
Initializing
Executing Validate Configuration File
/////

能夠指定步驟依次執行:

# nohup /u01/soft/onecommand/linux-x64/install.sh -cf customer-rack.xml -r 2-18 &

注:不一樣版本步驟總數和內容有細微差異,記住最後一步的Resecure Machine建議不要執行,執行完成後則整個刷機過程完畢。
日誌在/u01/soft/onecommand/linux-x64/log目錄下,每一步都有對應的日誌文件。
可使用-u來回退某一步操做,如:

# /u01/soft/onecommand/linux-x64/install.sh -cf customer-rack.xml -u 2

最後刷機完成,留意"Create Installation Summary"步驟的輸出信息,能夠將一些信息下載下來備用,好比EXAchk的巡檢信息,相關帳號密碼信息等。特別強調的是,EXAchk的巡檢信息最好仍是確認下,看是否有比較嚴重的問題須要解決的。

7.不算重要的收尾工做

其實到上面的步驟,整個刷機過程就算結束了。 這裏只是爲了方便使用,一般會順手根據需求配置對應環境變量,可能還會使用dbca建立新的符合實際要求的數據庫。

7.1 環境變量配置
發現當前並不會自動配置環境變量,須要手工配置。
以節點1爲例:

grid用戶:
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.0.0/grid
export ORACLE_SID=+ASM1
export PATH=$ORACLE_HOME/bin:$PATH

oracle用戶:
export GRID_HOME=/u01/app/19.0.0.0/grid
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1
export ORACLE_SID=cdb1db11
export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH

節點2對應ORACLE_SID修改匹配便可。

7.2 新建符合要求的測試庫
刷機的庫有時並不符合實際使用要求,若須要創建新庫,一般建議使用圖形dbca建庫,可最大程度避免出錯。這裏經過VNC鏈接到跳起色,假設是「:2」,參考命令以下:

xhost +
ssh 192.168.18.1
su - oracle
export DISPLAY=192.168.18.250:2
dbca

這些就都是基礎DBA的運維操做,通常也不會有啥問題。

相關文章
相關標籤/搜索