스토리지 환경에서 HANA 운영 환경 구성
각각 네 개의 노드(linux001 linux002 linux003 linux004)에서/etc/hosts 파일을 편집합니다 [노드마다 내용 일치]
1: [root@linux001 ~]# vi /etc/hosts
2: # Do not remove the following line, or various programs
3: # that require network functionality will fail.
4: 127.0.0.1 linux001 localhost.localdomain localhost
5: ::1 localhost6.localdomain6 localhost6i 172.23.176.103 linux001
6: 172.23.176.101 linux002
7: 172.23.176.104 linux003
8: 172.23.176.102 linux004
그중 172.23.176.103 linux001;127.23.176.101 linux002;127.23.176.104 linux003;127.23.176.102 linux004.추가된 내용을 위해 매일 서버에서 같은 조작을 실행합니다.편집 후 Esc 키를 설치한 후 shift +: 설치 후 wq를 입력하십시오!저장 종료.
1.2 ssh 상호 신뢰 구성linux001과 linux002를 예로 들자.우선 linux002 암호 없이 로그인 linux001을 설정합니다.linux001에서 실행: 1: [root@linux001]$ >ssh-keygen -t dsa
2: Generating public/private dsa key pair.
3: Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
4: Created directory '/home/oracle/.ssh'.
5: Enter passphrase (empty for no passphrase):
6: Enter same passphrase again:
7: Your identification has been saved in /home/oracle/.ssh/id_dsa.
8: Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
9: [root@linux001]>cd /root/.ssh
10: [root@linux001]>mv id_dsa.pub linux001.pub
11: [root@linux001]>scp linux001.pub root@linux002:/root/.ssh
12: linux002
13: [root@linux002]> cd /root/.ssh
14: [root@linux002]cat linux001.pub >> authorized_keys
15: [root@linux002]chmod 600 authorized_keys
16: [root@linux002]cd ..
17: [root@linux002] chmod 700 .ssh
linux001 암호 없이 로그인 linux002를 설정하고 linux002에서 실행: 1: [root@linux002]$ >ssh-keygen -t dsa
2: Generating public/private dsa key pair.
3: Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
4: Created directory '/home/oracle/.ssh'.
5: Enter passphrase (empty for no passphrase):
6: Enter same passphrase again:
7: Your identification has been saved in /home/oracle/.ssh/id_dsa.
8: Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
9: [root@linux002]>cd /root/.ssh
10: [root@linux002]>mv id_dsa.pub linux001.pub
11: [root@linux002]>scp linux001.pub root@linux001:/root/.ssh
linux001에서 실행 1: [root@linux001]> cd /root/.ssh
2: [root@linux001]cat linux001.pub >> authorized_keys
3: [root@linux001]chmod 600 authorized_keys
4: [root@linux002]cd ..
5: [root@linux001] chmod 700 .ssh
다른 기계인 linux001과 linux003은 상호간, linux001과 linux004는 상호간, linux002와 linux004는 상호간, linux002와 linux003은 상호간, linux003과 linux004는 상호간 설정 방법이 유사하다(총 12회 설정해야 한다).
2 다중 경로 구성
2.1 관련 패키지 관련 패키지 필요 device-mapper-1.02.13-6.9.i586.rpm
이 소프트웨어는 밑바닥에서 실행되며 주로 설비 가상화와 매핑을 진행한다.
multipath-tools-0.4.7-34.18.i586.rpm, 이 패키지는
다중 경로 관리 및 모니터링 도구로 주로 경로 상태를 검측하고 관리한다. 소프트웨어가 설치되어 있는지 확인하고 없으면 설치합니다.(모든 4대의 기기에서 작동) [root@linux001] rpm -qa | grep device-mapper (device-mapper가 설치되어 있는지 확인하고 알림이 없으면 zypper install 소프트웨어 이름으로 설치)
[root@linux001] rpm -qa | grep multipath-tool (device-mapper가 설치되어 있는지 확인하고 알림이 없으면 zypper install 소프트웨어 이름으로 설치) 설치 명령: [root@linux001] zypper install device-mapper
[root@linux001] zypper install multipath-tool 다중 경로 모듈이 로드되지 않으면 다음 명령을 사용하여 DM을 초기화하거나 시스템을 다시 시작합니다 . 1: ---Use the following commands to initialize and start DM for the first time:
2: [root@linux001] modprobe dm-multipath
3: [root@linux001] modprobe dm-round-robin
4: [root@linux001] service multipathd start
5: [root@linux001] multipath �Cv2
2.2 wwid 번호와 상태를 확인합니다. 1: linux001:/ # multipath -ll( )
2: Mpath1 (36000d31000eea500000000000000000008 ) dm-11 COMPELNT compelnet ,vol
3: [size=8.0T][features=1 queue_if_no_path][hwhandler=0] wp=rw
4: \_ round-robin 0 [prio=1 ] status=active
5: \_ 3:0:5:6 sdh 8:112 [active][undef]
6: \_ 4:0:7:6 sdn 8:208 [active][undef]
7: \_ 4:0:7:6 sdw 65:96 [active][undef]
8: \_ 4:0:7:6 sdz 65:114 [active][undef]
9:
10: Mpath2 (36000d31000eea500000000000000000003 ) dm-6 COMPELNT compelnet ,vol
11: [size=2.0T][features=1 queue_if_no_path][hwhandler=0] wp=rw
12: \_ round-robin 0 [prio=1 ] status=active
13: \_ 3:0:4:1sdc 8:32 [active][undef]
14: \_ 4:0:6:1 sdi 8:128 [active][undef]
15: \_ 4:0:4:1 sdo 8:224 [active][undef]
16: \_ 4:0:5:1 sdr 65:16 [active][undef]
17:
18: Mpath3 (36000d31000eea500000000000000000007) dm-8 COMPELNT compelnet ,vol
19: [size=500G][features=1 queue_if_no_path][hwhandler=0] wp=rw
20: \_ round-robin 0 [prio=1 ] status=active
21: \_ 3:0:4:5 sde 8:64 [active][undef]
22: \_ 4:0:6:5 sdk 8:160 [active][undef]
23: \_ 4:0:4:5 sdq 65:0 [active][undef]
24: \_ 4:0:5:5 sdt 65:48 [active][undef]
다중 체인 아래의 위조 장치 이름(mpath1, mpath2, mpath3)을 의미 있게 하기 위해 관련 프로필을 수정하여 설정할 수 있습니다.여기에서 우리는 모든 다중 체인 경로 아래의 위조 장치의 wwid를 기억해야 한다.번호는 mpath1의 뒷괄호 중의 36000d31000eea5000000000000008과 같다.또한 장치 이름 뒤에 있는 상태가 activ undef인 것을 발견하면 관련 장치가 아직 활성화되지 않았음을 의미합니다.
2.3 프로필 수정 및 작성multipath를 생성합니다.conf의 프로필입니다. 이 파일은 설치 후 자동으로 생성되지 않습니다.그러나 하나의 템플릿을 사용할 수 있습니다. 다음 명령을 사용하면 멀티패치를 만들 수 있습니다.conf의 파일cp/usr/share/doc/packages/multipath-tools/multipath.conf.synthetic /etc/multipath.conf (시스템의 기본 파일 multipath.conf.synthetic를/etc/multipath.conf로 복사하여 새로운 프로필 multipath.conf를 생산) 수정/etc/multipath.conf 파일 1: vi /etc/multipath.conf
2: blacklist {
3: devnode "^sda"
4: devnode "^sdb"
5: } sda,sdb
6: defaults {
7: user_friendly_names yes
8: } user_friendly_names yes
9: multipaths {
10: multipath {
11: wwid 36000d31000eea500000000000000000008(mapth1 wwid)
12: alias hana-8.0T
13: path_grouping_policymultibus
14: path_selector"round-robin 0"
15: failbackmanual
16: rr_weightpriorities
17: no_path_retry5
18: rr_min_io100
19: }
20: multipath {
21: wwid6000d31000eea500000000000000000003 (mapth2 wwid)
22: aliashana-2.0T
23: }
24: multipath {
25: Wwid 36000d31000eea500000000000000000007(math3 wwid)
26: aliashana-500G
27: }
28:
29: }
수정된 프로필은 scp를 통해 프로필multipath.conf를 다른 세 서버에 복사합니다.명령은 다음과 같습니다. 1: [root@linux001]#scp /etc/multipath.conf root@linux002:/etc/multipath.conf
2: [root@linux001]#scp /etc/multipath.conf root@linux003:/etc/multipath.conf
3: [root@linux001]#scp /etc/multipath.conf root@linux004:/etc/multipath.conf
2.4 multipathd 서비스를 다시 시작합니다. 재시작 서비스(노드당) 1: [root@linux001]# /etc/init.d/multipathd stop
2: Stopping multipathd daemon: [ OK ]
3: [root@linux001]# /etc/init.d/multipathd start
4: Starting multipathd daemon: [ OK ] ----- OK
5: (2,3,5 )( )
6: [root@linux001]#chkconfig --level 235 multipathd on
2.5 multipath 상태 보기 1: linux001:/ # multipath -ll ( )
2: Mpath1 (36000d31000eea500000000000000000008 ) dm-11 COMPELNT compelnet ,vol
3: [size=8.0T][features=1 queue_if_no_path][hwhandler=0] wp=rw
4: \_ round-robin 0 [prio=1 ] status=active
5: \_ 3:0:5:6 sdh 8:112 active ready running
6: \_ 4:0:7:6 sdn 8:208 active ready running
7: \_ 4:0:7:6 sdw 65:96 active ready running
8: \_ 4:0:7:6 sdz 65:114 active ready running
9:
10: Mpath2(36000d31000eea500000000000000000003 ) dm-6 COMPELNT compelnet ,vol
11: [size=2.0T][features=1 queue_if_no_path][hwhandler=0] wp=rw
12: \_ round-robin 0 [prio=1 ] status=active
13: \_ 3:0:4:1sdc 8:32 active ready running
14: \_ 4:0:6:1 sdi 8:128 active ready running
15: \_ 4:0:4:1 sdo 8:224 active ready running
16: \_ 4:0:5:1 sdr 65:16 active ready running
17:
18: Mpath3 (36000d31000eea500000000000000000007) dm-8 COMPELNT compelnet ,vol
19: [size=500G][features=1 queue_if_no_path][hwhandler=0] wp=rw
20: \_ round-robin 0 [prio=1 ] status=active
21: \_ 3:0:4:5 sde 8:64 active ready running
22: \_ 4:0:6:5 sdk 8:160 active ready running
23: \_ 4:0:4:5 sdq 65:0 active ready running
24: \_ 4:0:5:5 sdt 65:48 active ready running
위에서 보듯이:active ready running을 보면 다중 링크 이름이 설정되었습니다.
3 Ocfs2 관련 구성
3.1 관련 소프트웨어 패키지
Ocfs2-tools-1.6.4.0.3.5
Ocfs2-dmp-default-1.6_3.0.13_0.27-0.5.84
Ocfs2-tools-o2cb-1.6.4.0.3.5
Ocfs2console-1.6.4.0.3.5 소프트웨어가 설치되어 있는지 확인하고 없으면 설치합니다.(모든 4대의 기기에서 작동) 1: [root@linux001] rpm -qa | grep ocfs2-tools
2: [root@linux001] rpm -qa | grep ocfs2-dmp-default
3: [root@linux001] rpm -qa | grep ocfs2-tools-o2cb
4: [root@linux001] rpm -qa | grep ocfs2-console
5: :
6: [root@linux001] zypper install device-mapper
7: [root@linux001] zypper install multipath-tool
노드 구성 ocfs2console --> Cluster --> Node Configuration --> 각 노드를 추가합니다. 이름은 Hostname이고 IP 부분은 인터넷 IP를 추가합니다. 동기화 노드.(노드 하나) ocfs2console --> Cluster --> Progagate Cluster Configuration 동기화 linux001의 설정은 linux002 linux003 linux004에 적용됩니다. 1: [root@ linux001]# cat /etc/ocfs2/cluster.conf
2: node:
3: ip_port = 7777
4: ip_address = 172.23.176.103
5: number = 0
6: name = linux001
7: cluster = ocfs2
8:
9: node:
10: ip_port = 7777
11: ip_address = 172.23.176.101
12: number = 1
13: name = linux002
14: cluster = ocfs2
15: node:
16: ip_port = 7777
17: ip_address = 172.23.176.103
18: number = 2
19: name = linux003
20: cluster = ocfs2
21:
22: node:
23: ip_port = 7777
24: ip_address = 172.23.176.102
25: number = 3
26: name = linux004
27: cluster = ocfs2
28: cluster:
29: node_count = 4
30: name = ocfs2
3.3 구성 02cb 노드당 실행: 1: [root@linux001]# /etc/init.d/o2cb configure
2: Configuring the O2CB driver.
3: This will configure the on-boot properties of the O2CB driver.
4: The following questions will determine whether the driver is loaded on
5: boot. The current values will be shown in brackets ('[]'). Hitting
6: <ENTER> without typing an answer will keep that current value. Ctrl-C
7: will abort.
8: Load O2CB driver on boot (y/n) [n]: y
9: Cluster stack backing O2CB [o2cb]:
10: Cluster to start on boot (Enter "none" to clear) [ocfs2]:
11: Specify heartbeat dead threshold (>=7) [31]:
12: Specify network idle timeout in ms (>=5000) [30000]:
13: Specify network keepalive delay in ms (>=1000) [2000]:
14: Specify network reconnect delay in ms (>=2000) [2000]:
15: Writing O2CB configuration: OK
16: Loading filesystem "configfs": OK
17: Mounting configfs filesystem at /sys/kernel/config: OK
18: Loading filesystem "ocfs2_dlmfs": OK
19: Creating directory '/dlm': OK
20: Mounting ocfs2_dlmfs filesystem at /dlm: OK
21: Checking O2CB cluster configuration : Failed
3.4 파일 시스템 파티션 1: [root@linux001]# fdisk /dev/mapper/hana-500G
2: Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
3: Building a new DOS disklabel. Changes will remain in memory only,
4: until you decide to write them. After that, of course, the previous
5: content won't be recoverable.
6:
7: Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
8:
9: Command (m for help): n
10: Command action
11: e extended
12: p primary partition (1-4)
13: p
14: Partition number (1-4): 1
15: First cylinder (1-261, default 1):
16: Using default value 1
17: Last cylinder or +size or +sizeM or +sizeK (1-261, default 261):
18: Using default value 261
19:
20: Command (m for help): w
21: The partition table has been altered!
22:
23: Calling ioctl() to re-read partition table.
동일한 방법으로 다른 장치를 파티셔닝합니다.(실제 과정에서도 전체 장치를 포맷하여 구역을 나누지 않을 수 있다. 이 예에서는 이렇게 하기 때문에 구역을 나누는 단계가 없다.)
3.5 파일 시스템 포맷
1: ? ( )
2: [root@linux001]# mkfs.ocfs2 /dev/mapper/hana-8.0t
3: [root@linux001]# mkfs.ocfs2 /dev/mapper/hana2.0t
4: [root@linux001]# mkfs.ocfs2 /dev/mapper/hana-500G
5: ?
6: [root@linux001] mkdir /saphana
7: [root@linux001] mkdir -p /saphana/data
8: [root@linux001] mkdir -p /saphana/log
9: [root@linux001] mkdir -p /saphana/shared
10: ?
11: [root@linux001]#mount -t ocfs2 -o nointr /dev/mapper/hana-8.0T /saphana/data( )
12: [root@linux001]#mount -t ocfs2 -o nointr /dev/mapper/hana-2.0T /saphana/log( )
13: [root@linux001]#mount -t ocfs2 -o nointr /dev/mapper/hana-500G /saphana/shared( )
14: ? ( )
15: [root@NEWORACLE2 ~]# df -h
16: Filesystem size Used Avali Use% Mount on
17: /dev/mapper/system-root 30G 4.8G 24G 17% /
18: Devtmprs 253G 320k 253G 1% /dev
19: tmpfs 380G 88k 380G 1% /dev/shm
20: /dev/sda1 152M 36M 108M 25% /boot
21: /dev/dm-11 8.0T 13G 8.0T 1% saphana/data
22: /dev/dm-6 2.0T 13G 2.0T 1% saphana/log
23: /dev/dm-11 500G 2.9G 298G 1% saphana/shared
24: ? , ( )
25: vi /etc/fstab :
26: /dev/mapper/hana-8.0T /saphana/data ocfs2 _netdev 0 0
27: /dev/mapper/hana-2.0T /saphana/log ocfs2 _netdev 0 0
28: /dev/mapper/hana-500G /saphana/shared ocfs2 _netdev 0 0
29: , df -h , , 。
30: [root@NEWORACLE2 ~]# df -h
31: Filesystem size Used Avali Use% Mount on
32: /dev/mapper/system-root 30G 4.8G 24G 17% /
33: Devtmprs 253G 320k 253G 1% /dev
34: tmpfs 380G 88k 380G 1% /dev/shm
35: /dev/sda1 152M 36M 108M 25% /boot
36: /dev/dm-11 8.0T 13G 8.0T 1% saphana/data
37: /dev/dm-6 2.0T 13G 2.0T 1% saphana/log
38: /dev/dm-11 500G 2.9G 298G 1% saphana/shared
3.6 서비스 재시작 재시작 서비스(노드당) 1: [root@linux001 ~]# service ocfs2 restart
2: [root@linux001 ~]# service o2cb restart
3: Unmounting ocfs2_dlmfs filesystem: OK
4: Unloading module "ocfs2_dlmfs": OK
5: Unmounting configfs filesystem: OK
6: Unloading module "configfs": OK
7: Loading filesystem "configfs": OK
8: Mounting configfs filesystem at /sys/kernel/config: OK
9: Loading filesystem "ocfs2_dlmfs": OK
10: Mounting ocfs2_dlmfs filesystem at /dlm: OK
11: Starting O2CB cluster ocfs2: OK
12: ? ( )
13: [root@linux001]#chkconfig --level 235 o2cb on
14: [root@linux001]#chkconfig --level 235 ocfs2 on
3.7 서비스 상태 보기 1: ? 02cb ( )
2: root@NEWORACLE2 ~]# service o2cb status
3: Driver for "configfs": Loaded
4: Filesystem "configfs": Mounted
5: Driver for "ocfs2_dlmfs": Loaded
6: Filesystem "ocfs2_dlmfs": Mounted
7: Checking O2CB cluster ocfs2: Online
8: Heartbeat dead threshold = 31
9: Network idle timeout: 30000
10: Network keepalive delay: 2000
11: Network reconnect delay: 2000
12: Checking O2CB heartbeat:active
13: ? ocfs2 ( )
14: root@linux001 ~]# service ocfs2 status
15: Configured OCFS2 mountpoints: /saphana/data /saphana/log /saphana/shared
16: Active OCFS2 mountpoints: /saphana/data /sap/hanalog
17: /saphana/shared
4 테스트
4.1 읽기 및 쓰기 위한 파일 만들기 테스트는 어느 서버에나 간단합니다. 예를 들어 linux001의/saphana/data 디렉터리에서 파일linux를 만들고 그 안에 내용을 마음대로 넣으면 다른 서버의/saphana/data에서도 linux 파일을 볼 수 있고 읽기와 쓰기를 할 수 있다면 성공입니다.
5 자주 발생하는 오류 1: [root@linux001 ~]# mount -t ocfs2 -o nointr /dev/mapper/hana-500G /saphana/
2: shared
3: mount.ocfs2: Device or resource busy while mounting /dev/sdb1 on /u02/ocfs_redo.
4: Check 'dmesg' for more information on this error.
5: ? , 。
6: [root@linux001 ~]#umount /dev/mapper/hana-500G
7: [root@linux001 ~]#umount /saphana/shared
8: [root@linux001 ~]# mount -t ocfs2 -o nointr /dev/mapper/hana-500G /saphana/
9: Shared
10: mount.ocfs2: Unable to access cluster service while trying to join the group
11: ?df , ocfs2 , 。
12: mount -t ocfs2 -o nointr /dev/mapper/hana-500G /saphana/shared
13: ocfs2_hb_ctl: Bad magic number in superblock while reading uuid
14: mount.ocfs2: Error when attempting to run /sbin/ocfs2_hb_ctl: "Operation not
15: permitted
16: ? ocfs2 , ocfs2 ,
17: .
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Android 앱 개발】 전체 화면을 표시하는 방법 (알림 표시 줄 숨기기)Android 앱을 전체 화면으로 표시하고 싶지만 프로젝트 초기 설정 (Activity)에서 "Empty Activity"를 선택해도 통지 바가 표시되므로, 이번은 이 통지 바 주위의 설정을 정리해 기술하고 싶습니다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.