320x100

 

 

안녕하세요.

오늘은 hostid에 대해서 알아보겠습니다.

 

hostid란?

 일반적으로 hostid는 고유의 값으로 특정 솔루션의 License 를 OS별로 구분하기 위해 사용됩니다.

hostid 명령어로 출력되는 값은 현재 로컬 호스트의 ID(고유한 호스트 이름 또는 숫자 인수)를 16진수로 표시합니다

이 숫자 값은 모든 호스트에서 고유할 것으로 예상되고 일반적으로 InternetAddress 또는 HostName 매개변수에 의해 지정되는 호스트의 주소로 설정됩니다.

루트 사용자는 HexNumber, InternetAddress 또는 HostName 매개변수에 대해 16진수를 지정하여 hostid 명령을 설정할 수 있습니다.

 

hostid 확인 및 설정방법

1. hostid 확인

[node1:root]/>ifconfig -a
en0: flags=1e084863,114c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),LARGESEND,CHAIN>
        inet 10.50.1.83 netmask 0xffffff00 broadcast 10.50.1.255
        inet 10.50.1.81 netmask 0xffffff00 broadcast 10.50.1.255
         tcp_sendspace 262144 tcp_recvspace 262144 rfc1323 1

[node1:root]/>cat /etc/hosts
...
10.50.1.82      node2
10.50.1.83      VIP
10.50.1.81      node1

[node1:root]/>netstat -nr | grep default
default            10.50.1.1         UG        2      5946 en0      -      -

[node1:root]/>hostid
0xa320151

  위의 내용을 보시면 현재 en0 인터페이스를 사용하여 메인IP가 구성되어 있습니다.

현재 hostid 결과값은 0xa320151 으로 표시가 됩니다. 이 값은 메인 IP인 [10.50.1.81] 주소를 16진수로 표시한 값이 됩니다.

 

2. hostid 변경 테스트

<테스트1>
[node1:root]/>hostid 10.50.1.84
[node1:root]/>hostid
0xa320154
[node1:root]/>shutdown -Fr
============================
OS 재부팅 후 재접속
[node1:root]/>hostid
0xa320151

<테스트2>
[node1:root]/>hostid 10.50.1.84
[node1:root]/>hostid
0xa320154
[node1:root]/>
[node1:root]/>/etc/rc.net
[node1:root]/>hostid     
0xa320151

 OS상에서 임의로 hostid 값을 변경이 가능하지만, OS 재부팅을 할경우에는 현재 IP, /etc/hosts 파일에 상응하는 기존 hostid 값 0xa320151 으로 돌아오는 것을 확인할 수 있습니다.

 또한 임의로 hostid를 변경한 후, /etc/rc.net 파일을 실행 해주어도 기존 hostid값으로 변경되는 것이 확인됩니다.

320x100

3. 고정된 hostid 설정

 일반적으로 시스템을 구축한 이후 메인IP와 hostname이 변경할 일은 거의 없습니다.

하지만 특정작업으로 인해 IP가 변경되는 경우에는 hostid 값이 변경되게 됨으로 기존에 사용하던 솔루션들이 정상적으로 구동하지 못하는 경우가 생기게 됩니다. 또한 변경된 hostid에 따른 신규 라이센스를 발급받아야 되는데 솔루션마다 차이가 있겠지만 어느정도의 시간이 소요되는 걸로 알고 있습니다.

 일반적으로 hostid 를 특정 값으로 고정하기 위해서는 /etc/rc.net System Booting 중 읽어 들이는 파일에 설정을 해서 사용합니다.

[node1:root]/>vi /etc/rc.net
........
##################################################################
# Set the hostid and uname to `hostname`, where hostname has been
# set via ODM in Part I, or directly in Part II.
# (Note it is not required that hostname, hostid and uname all be
# the same).
/usr/sbin/hostid`hostname`            >>$LOGFILE 2>&1
/bin/uname -S`hostname|sed 's/\..*$//'` >>$LOGFILE 2>&1

##################################################################

<변경 후>
........
##################################################################
# Set the hostid and uname to `hostname`, where hostname has been
# set via ODM in Part I, or directly in Part II.
# (Note it is not required that hostname, hostid and uname all be
# the same).
/usr/sbin/hostid 0xa320154         >>$LOGFILE 2>&1
/bin/uname -S`hostname|sed 's/\..*$//'` >>$LOGFILE 2>&1

##################################################################

[node1:root]/>/etc/rc.net   
[node1:root]/>hostid
0xa320154

 /etc/rc.net 파일에 `hostname` 값을 바꾸고 싶은 hostid 값으로 변경해주고, /etc/rc.net 파일을 실행해줍니다.

그러면 설정한 값으로 변경된 것을 확인할 수 있으며, OS가 재부팅될때 마다 고정된 값으로 설정되게 됩니다.

/etc/rc.net 파일 이외에도 해당 command Line을 별도의 Booting 과정에 실행되는 파일에 설정하셔도 됩니다.

 

감사합니다.

오늘도 즐거운 하루되세요 ^^

 

 

 

 

 

 

 

반응형

+ Recent posts