1. 程式人生 > 其它 >使用VM模擬部署DM共享儲存(DSC)叢集

使用VM模擬部署DM共享儲存(DSC)叢集

準備兩個虛擬機器CentOS1(192.168.202.133)和CentOS2(192.168.202.152),還需一個裸盤,沒有的話可以以在虛擬機器新增硬碟的方式模擬裸盤。

一、環境準備

1、新建兩臺虛擬機器

選擇新建虛擬機器,設定ISO映象檔案,磁碟大小12G,將虛擬磁碟儲存為單個檔案。虛擬機器記憶體設定為2GB。兩個虛擬機器作業系統、記憶體大小等完全一樣。

啟動好後systemctl stop firewalld 關閉防火牆

ifconfig 查ip地址

如果沒安裝ifconfig,則yum install ifconfig

如果還失敗,則yum search ifconfig

查到後執行 yum install net-tools.x86_64

這樣就可以用ifconfig了

注意:我之前試過先建立虛擬機器,選擇稍後安裝作業系統,然後新建硬碟,新增完硬碟後再建立作業系統,結果啟動後找不到我新建的硬碟,建議還是先安裝作業系統,啟動沒問題後再關閉虛擬機器,然後新建硬碟。

2、在CentOS1建立新硬碟

注意:必須在虛擬機器關閉的狀態下,才能進行虛擬機器的設定。

編輯虛擬機器或者直接點硬碟(SCSI)都可以,選擇新增硬碟,虛擬磁碟型別選SCSI(S),建立新虛擬硬碟。磁碟大小20G,將虛擬磁碟儲存為單個檔案,硬碟自己命名,最好單獨儲存到一個資料夾,不要選擇預設。

必須勾選立即分配所有磁碟空間

下圖是我的儲存目錄,第三個是虛擬硬碟。

3、在CentOS2新增之前建立的硬碟

注意:必須在虛擬機器關閉的狀態下,才能進行虛擬機器的設定。

3、修改vmx檔案

我只添加了一個SCSI硬碟,開啟CentOS2的vmx配置檔案,加入如下資訊:

disk.locking="FALSE"

scsi0:1.SharedBus="Virtual"

說明:

scsi n:m.SharedBus="Virtual"

n和m是SCSI的裝置編號,可以在配置檔案中找到需要共享的SCSI裝置的資訊。

4、檢視硬碟有沒有加入

二、安裝達夢資料庫管理系統

1、建立使用者組、使用者和響應目錄

[root@dameng home]# groupadd dinstall

[root@dameng home]# useradd -g dinstall dmdba

[root@dameng home]# passwd dmdba

PWD : dmdba

手動建立響應的目錄

資料庫管理系統安裝在/home/dmdba目錄下

cd /home/dmdba

mkdir dmdbms

cd dmdbms

mkdir BAK

mkdir config(目錄存放所有配置檔案)

mkdir arch_0(存放歸檔日誌)

mkdir arch_0_remote(存放遠端歸檔)

cd ../

chown -R dmdba:dinstall dmdbms

chmod -R 755 dmdbms

2、安裝

上傳iso檔案或者DMInstall.bin,我是直接上傳的DMInstall.bin,放在/home下

chown -R dmdba:dinstall /home/DMInstall.bin

chmod -R 755 /home/DMInstall.bin

切換dmdba登入

[dmdba@dameng home]# ./DMInstall.bin -i

請選擇安裝語言(C/c:中文 E/e:英文) [C/c]:c

是否輸入Key檔案路徑? (Y/y:是 N/n:否) [Y/y]:n

是否設定時區? (Y/y:是 N/n:否) [Y/y]:y

請選擇設定時區 [21]:21

請選擇安裝型別的數字序號 [1 典型安裝]:1

請選擇安裝目錄 [/opt/dmdbms]:/home/dmdba

3、在共享磁碟上劃分裸裝置

1)開始劃分

在一個節點上劃分即可。

a) 輸入 fdisk /dev/sdb

b) 依次輸入 n  p  1 回車 +100M 回車,完成第一塊磁碟劃分

c) 依次輸入 n  p  2 回車 +100M 回車,完成第二塊磁碟劃分

d) 依次輸入 n  p  3 回車 +2048M 回車,完成第三塊磁碟劃分

e) 依次輸入 n  p  4 回車回車回車,完成第四塊磁碟劃分

f) 輸入w命令,將裸裝置劃分的設定進行儲存

g)兩個節點都執行一下語句完成裸裝置繫結

partprobe /dev/sdb 重讀分割槽表

systemctl restart systemd-udev-trigger.service

h)fdisk -l 檢視劃分情況(兩個節點都看)

注意:我第一次劃分的時候,第四步輸錯了,把+2048M輸成+2048,導致後面使用 DMASMCMD 工具初始化的時候報錯,如下圖所示:

解決方法是把3和4刪掉重建。

同樣使用fdisk /dev/sdb命令 不是fdisk /dev/sdb1,輸入m並回車,

輸入d並回車

選擇要刪除的分割槽,分別刪除3和4。

刪除後再重新分割槽3和4,如下:

依次輸入 n  p  3 回車 +2048M 回車,完成第三塊磁碟劃分

依次輸入 n  p  4 回車回車回車,完成第四塊磁碟劃分

輸入w命令,將裸裝置劃分的設定進行儲存。

最後執行

partprobe /dev/sdb 重讀分割槽表

systemctl restart systemd-udev-trigger.service

2)編輯/etc/udev/rules.d/60-raw.rules 檔案,增加以下語句:

2臺伺服器均需增加以下語句

ACTION=="add" , KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

4、準備dmdcr_cfg.ini配置檔案

放在 /home/dmdba/dmdbms/config 目錄下,兩個節點均需要, 後續 DMASMCMD工具執行 init 語句會使用到。

DCR_N_GRP = 3

DCR_VTD_PATH = /dev/raw/raw2

DCR_OGUID = 63635

[GRP]

DCR_GRP_TYPE = CSS

DCR_GRP_NAME = GRP_CSS

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[GRP_CSS]

DCR_EP_NAME = CSS0

DCR_EP_HOST = 192.168.202.133

DCR_EP_PORT = 9341

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 192.168.202.152

DCR_EP_PORT = 9343

[GRP]

DCR_GRP_TYPE = ASM

DCR_GRP_NAME = GRP_ASM

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[GRP_ASM]

DCR_EP_NAME = ASM0

DCR_EP_SHM_KEY = 93360

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 192.168.202.133

DCR_EP_PORT = 9349

DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP_ASM]

DCR_EP_NAME = ASM1

DCR_EP_SHM_KEY = 93361

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 192.168.202.152

DCR_EP_PORT = 9351

DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]

DCR_GRP_TYPE = DB

DCR_GRP_NAME = GRP_DSC

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[GRP_DSC]

DCR_EP_NAME = DSC0

DCR_EP_SEQNO = 0

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9741

[GRP_DSC]

DCR_EP_NAME = DSC1

DCR_EP_SEQNO = 1

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9742

5、使用 DMASMCMD 工具初始化磁碟組

1)在其中一個節點上啟動dmasmcmd工具

cd /home/dmdba/bin

./dmasmcmd

2)依次輸入以下命令(只需在一臺機器執行即可)

ASM>create dcrdisk '/dev/raw/raw1' 'dcr'

ASM>create votedisk '/dev/raw/raw2' 'vote'

ASM>create asmdisk '/dev/raw/raw3' 'LOG0'

ASM>create asmdisk '/dev/raw/raw4' 'DATA0'

ASM>init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'abcd'

ASM>init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'

6、配置dmasvrmal.ini檔案(兩個節點都一樣)

存放目錄 home/dmdba/dmdbms/config

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 192.168.202.133

MAL_PORT = 7236

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 192.168.202.152

MAL_PORT = 7237

7、準備 dmdcr.ini 配置檔案

存放目錄 home/dmdba/dmdbms/config

DMASM 的兩個節點分別配置 dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini 檔案內容也相同,dmdcr_seqno 分別為 0 和 1。path中分別是dsc0_config和dsc1_config。

CentOS1的:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM 重啟引數,命令列方式啟動
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/bin/dmasmsvr dcr_ini=home/dmdba/dmdbms/config/dmdcr.ini
#DB 重啟引數,命令列方式啟動
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/bin/dmserver path=/home/dmdba/dmdbms/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

CentOS2的:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM 重啟引數,命令列方式啟動
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/bin/dmasmsvr dcr_ini=home/dmdba/dmdbms/config/dmdcr.ini
#DB 重啟引數,命令列方式啟動
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/bin/dmserver path=/home/dmdba/dmdbms/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

注意:紅框圈中的不能換行。

8、啟動DMCSS、DMASM服務

在兩臺虛擬機器分別前臺啟動,方便檢視啟動資訊。

cd /home/dmdba/bin

./dmcss DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

啟動成功效果如下:

注意:啟動第二個節點的時候報了個錯,如下:

解決方式如下:

切換一個會話,因為是前臺啟動,退出的話也關閉css了。

cd /home/dmdba/bin

./dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

啟動成功效果如下:

9、使用 dmasmtool 工具建立 DMASM 磁碟組

選擇一個節點,啟動 dmasmtool 工具。

cd /home/dmdba/bin

./dmasmtool DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

輸入下列語句建立 DMASM 磁碟組:

#建立日誌磁碟組

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

#建立資料磁碟組

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

注意:剛開始啟動的時候報錯了,原因是我133重啟過,防火牆又自動啟動了。

systemctl disable firewalld.service 防火牆禁止開機重啟

檢視日誌資訊如下:

根據日誌資訊判斷應該是網路的問題。

剛開始沒想到是防火牆的問題,因為我記得我關了,忘記中間有重啟過,也沒設定防火牆禁止開機重啟。

測試方式是在133這臺機器上建立個數據庫,用152去連線,發現連不上,我本地也連不上133的資料庫,只有133自己可以連線。也猜測過是selinux的問題,後來發現不是。

10、準備 dminit.ini 配置檔案(一個節點即可)

存放目錄 home/dmdba/dmdbms/config

我是放在133這個節點上。

11、使用 dminit 初始化 DB 環境

在133上啟動dminit工具初始化資料庫。

./dminit control=/home/dmdba/dmdbms/config/dminit.ini

dminit執行完成後,會在config_path目錄(/home/dmdba/dmdbms/config/rac0_config和rac1_config)下生成配置檔案dm.ini和dmmal.ini。

注:初始化資料庫完成之後,將133節點上生成的rac1_config檔案拷貝到152的/home/dmdba/dmdbms/config目錄下,然後將133上/home/dmdba/dmdbms/config目錄下的rac1_config資料夾刪掉。

注意:初始化的時候遇到如下問題:

原因是dcr檔案裡面的例項名與dminit裡面不匹配。

dmdcr_cfg.ini配置如下:

dmdcr.ini配置如下:

12、配置遠端歸檔

先將兩個節點上的dm.ini中的ARCH_INI設定為1,然後配置dmarch.ini檔案

1)節點133:

存放目錄 /home/dmdba/dmdbms/config/dsc0_config

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/arch_0

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 10240

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC1

ARCH_INCOMING_PATH =/home/dmdba/dmdbms/arch_0_remote

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 10240

2)節點152:

存放目錄 /home/dmdba/dmdbms/config/dsc1_config

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/arch_1

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 10240

[ARCH_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC0

ARCH_INCOMING_PATH =/home/dmdba/dmdbms/arch_1_remote

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 10240

13、啟動資料庫服務

1)啟動133節點的

./dmserver /home/dmdba/dmdbms/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

2)啟動152節點的

./dmserver /home/dmdba/dmdbms/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

14、註冊服務

1)註冊命令

cd /home/dmdba/script/root

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS1

./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM1 -y DmCSSServiceCSS1

./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc0_config/dm.ini -p DB1 -y DmASMSvrServiceASM1

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS2

./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM2 -y DmCSSServiceCSS2

./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc1_config/dm.ini -p DB2 -y DmASMSvrServiceASM2

2)啟動命令

節點1:

systemctl start DmCSSServiceCSS1

systemctl start DmASMSvrServiceASM1

systemctl start DmServiceDB1

節點2:

systemctl start DmCSSServiceCSS2

systemctl start DmASMSvrServiceASM2

systemctl start DmServiceDB2

15、配置監視器

監視器放在第三方機器上,為 windows 作業系統,dmcssm.ini 配置檔案路徑為 D:\DCA\cssm。

1)dmcssm.ini內容

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致

CSSM_OGUID = 63635

#配置所有 CSS 的連線資訊,

#和 dmdcr_cfg.ini 中 CSS 配置項的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致

CSSM_CSS_IP = 192.168.202.133:9341

CSSM_CSS_IP = 192.168.202.152:9343

CSSM_LOG_PATH =D:\DCA\cssm\log

#監視器日誌檔案存放路徑

CSSM_LOG_FILE_SIZE = 32

#每個日誌檔案最大 32M

CSSM_LOG_SPACE_LIMIT = 0

#不限定日誌檔案總佔用空間

2)啟動監視器

dmcssm.exe INI_PATH=D:\DCA\cssm\dmcssm.ini

更多資訊請上達夢技術社群瞭解:https://eco.dameng.com