Stein 오픈스택 클라우드 서버 구축(2) - 시스템 구성 (update 2020.01.28)

b l o g p o s t

앞서 멀티노드 구성 개요에서 언급한 바와 같이 3개의 노드(컨트롤러, 컴퓨트, 네트워크)를 구성하기위해 본 포스팅에서는 각 노드별로 오픈스택 서버를 구축하기 위한 시스템 초기화를 진행해 보겠습니다. 
 
노드별로 구성될 호스트는 총 3대(컨트롤러, 컴퓨트0, 네트워크 노드)입니다. 성능을 고려하면 물리 디바이스로 구축되어야 하는 것이 맞지만, 저의 경우 앞서 개요에서 언급한 바와 같이 컨트롤러와 네트워크는 VMware를 통한 가상머신으로 구축하고 컴퓨트0 노드만 물리 장비로 구축합니다. 
 
 

 

1. OS 구성

 

모든 노드의 OS 및 커널 버전은 아래 버전으로 통일하였습니다. 구체적인 OS 설치 과정은 생략합니다. 
CentOS 7, Linux 3.10.0-1062.4.1.el7.x86_64
 
OS 설치하고 아래 네트워크 설정 후 모든 노드에서 yum으로 커널 포함하여 패키지를 최신으로 업데이트 하였습니다.
 
[root@Compute0 ~]# yum update
 
 
 
 
2. 네트워크 구성

 

 

 

네트워크는 다음과 같이 각 노드 별로 관리용, 통신용 네트워크로 구성되어 있습니다. 관리용 인터페이스는 말 그대로 관리자 접근용 NIC입니다. 따라서 오픈스택 시스템의 서비스나 VM의 네트워크 통신과 분리되어 있습니다. 또한 패키지 업데이트 등 외부 레포지토리 접근을 위해서도 사용되어야 하므로 인터넷 접속을 위해 디폴트 게이트웨이를 잡아주었습니다.

 

통신용 인터페이스는 내부 오픈스택 서비스 간, 혹은 가상머신의 통신을 위해 사용되는 인터페이스입니다. 내부 서비스를 위해서만 사용되므로 기본적으로 GW가 할당되지 않습니다. 물론 인터페이스간 통신은 가능해야 하므로 l2 스위치 역할을 하는 장비(저의 경우 공유기)를 통해 연결되어 있어야 합니다.

 

- Controller:

관리용: 인터페이스: eno16777736, IP: 192.168.0.26/24, Gateway: 192.168.0.1

통신용: 인터페이스: eno33554976, IP: 10.0.0.26/24, Gateway: X

DNS: 8.8.8.8

 

- Network:

관리용: 인터페이스: eno16777736, IP: 192.168.0.27/24, Gateway: 192.168.0.1

통신용: 인터페이스: eno33554976, IP: 10.0.0.27/24, Gateway: X

DNS: 8.8.8.8

 

- Compute0:

관리용: 인터페이스: br0IP: 10.0.0.25 /24, Gateway: 192.168.0.1

통신용: 인터페이스: veth1, IP: 10.0.0.25/24, Gateway: X

(물리 인터페이스: eno1)

DNS: 8.8.8.8

 

컴퓨트0 노드의 경우, 현재 사용 가능한 물리 인터페이스는 1개(eno1) 입니다. 이를 2개의 네트워크로 구성하는 방법은 다양한 방법이 있지만 저는 이전에 포스팅했던 Veth를 활용하였습니다. 결과적으로 eno1은 트래픽 포워딩을 위한 NIC일 뿐, 시스템 내부 가상 인터페이스인 br0와 veth1 인터페이스에 실제 IP를 할당하였습니다. 인터페이스 구성 방법은 해당 포스팅을 참고하시기 바랍니다: [바로가기]

 

 

 

 

3. 호스트 구성

 

 

 

모든 노드에 아래와 같이 호스트를 지정해 주었습니다.

 

# vim /etc/hosts

10.0.0.25 Compute0
10.0.0.26 Controller
10.0.0.27 Network

 

호스트 설정 후 각 노드 별로 통신이 가능한지 확인해 봅니다. 아래 예시는 Compute0에서 테스트 하였으나, 마찬가지로 Network, Controller 노드에서도 호스트를 통하여 서로 통신 가능하도록 구성합니다.

 

[root@Compute0 ~]# ping Network
PING Network (10.0.0.27) 56(84) bytes of data.
64 bytes from Network (10.0.0.27): icmp_seq=1 ttl=64 time=0.944 ms
64 bytes from Network (10.0.0.27): icmp_seq=2 ttl=64 time=0.552 ms
64 bytes from Network (10.0.0.27): icmp_seq=3 ttl=64 time=0.691 ms
64 bytes from Network (10.0.0.27): icmp_seq=4 ttl=64 time=0.541 ms
^C
--- Network ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.541/0.682/0.944/0.162 ms
[root@Compute0 ~]#
[root@Compute0 ~]# ping Controller
PING Controller (10.0.0.26) 56(84) bytes of data.
64 bytes from Controller (10.0.0.26): icmp_seq=1 ttl=64 time=0.878 ms
64 bytes from Controller (10.0.0.26): icmp_seq=2 ttl=64 time=0.704 ms
64 bytes from Controller (10.0.0.26): icmp_seq=3 ttl=64 time=0.690 ms
^C
--- Controller ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.690/0.757/0.878/0.088 ms

 

 

4. 시간 동기화 (NTP)

 

 

모든 노드가 동일한 시간을 동기화 하도록 NTP 서비스를 설치 후 아래와 같이 모든 노드에 NTP 서버를 구성합니다. 

 

[root@Compute0 ~]# yum -y install chrony

[root@Compute0 ~]# vi /etc/chrony.conf

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

allow 10.0.0.0/24

 

내부 방화벽에서 NTP 서비스의 통신을 허용합니다.

 

[root@Compute0 ~]# firewall-cmd --add-service=ntp --permanent
[root@Compute0 ~]# firewall-cmd --reload

 

모든 노드에서 아래와 같이 NTP 서비스가 정상 동작하는지 확인합니다.

 

[root@Compute0 ~]# chronyc sources
210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* ntp1.jst.mfeed.ad.jp          2  10   377   416   +693us[ +734us] +/-   70ms
^+ ntp2.jst.mfeed.ad.jp          2  10   377   609   -169us[ -129us] +/-   59ms
^+ ntp3.jst.mfeed.ad.jp          2  10   377   694   +510us[ +551us] +/-   85ms

 

여기까지 일단 모든 노드의 가장 기본적인 시스템 환경을 구성하였습니다. 이어서 다음 포스팅에서는 오픈스택 Stein 설치 후 환경 구성을 진행하도록 하겠습니다.

 

 

TAGS.

Comments