스토리지 환경에서 HANA 운영 환경 구성

1.1 호스트 이름 구성

  • 각각 네 개의 노드(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:                      .

    좋은 웹페이지 즐겨찾기