4 오픈스택 구축


4.2 네트워크 노드 설치

멀티노드 Neutron 네트워크 구성도


4.2.1 NTP 설치

컨트롤러 노드에 NTP 서버를 설치하였으므로 네트워크 노드에는 NTP 클라이언트를 설치한다.


apt-get 명령어를 이용해 ntp 패키지를 설치하고 컨트롤러 노드의 NTP 서버와 시간 동기화 및 BISO 시간과 동기화한다.

 

# NTP 클라이언트 설치

$ sudo apt-get install ntp

$ sudo ntpdate -u 192.168.0.11

15 May 10:12:09 ntpdate[1942]: adjust time server 192.168.0.11 offset 0.008702 sec

$ sudo hwclock -w


4.2.2 데이터베이스 설치

컨트롤러 노드에서 이미 MySQL 서버를 설치하였으므로 네트워크 노드는 Python Mysql API만 설치하면 된다.


# Python Mysql API 설치

$ sudo apt-get install python-mysqldb


4.2.3 오픈스택 아이스하우스 패키지 설치

apt-get 명령어를 이용해 python-software-properties 패키지를 설치하고 repository에 icehouse를 추가한다. 그리고 시스템 업데이트를 한 후 재부팅한다.


# 아이스하우스 패키지 설치

$ sudo apt-get install python-software-properties

$ sudo add-apt-repository cloud-archive:icehouse

[ ENTER ] 누른다.

$ sudo apt-get update && sudo apt-get dist-upgrade && sudo reboot


4.2.4 Neutron Networking 설치

/etc/sysctl.conf 파일을 열어 맨 첫줄에 그림과 같은 값들을 붙여넣기 해준다.


net.ipv4.ip_forward=1은 IP를 공유해서 포워딩이 가능하도록 설정하는 것이고, _filter는 들어오는 패킷과 나가는 패킷의 인터페이스가 동일한지 검사하는 것이다.


그리고 설정한 내용을 시스템에 재부팅 없이 적용하기 위해 sysctl 명령어를 사용한다.


# sysctl.conf 파일 설정

$ sudo vi /etc/sysctl.conf

net.ipv4.ip_forward=1

net.ipv4.conf.all.rp_filter=0

net.ipv4.conf.default.rp_filter=0


$ sudo sysctl -p

net.ipv4.ip_forward = 1

net.ipv4.conf.all.rp_filter = 0

net.ipv4.conf.default.rp_filter = 0


Neutron 관련 패키지를 설치한다.


# Neutron 설치

$ sudo apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms neutron-l3-agent neutron-dhcp-agent


/etc/neutron/neutron.conf 파일을 열어 그림과 같이 설정한다.


# neutron.conf 파일 설정

$ sudo vi /etc/neutron/neutron.conf

1 [DEFAULT]

53 core_plugin = ml2

62 service_plugins = router

70 auth_strategy = keystone

98 allow_overlapping_ips = True

105 rpc_backend = neutron.openstack.common.rpc.impl_kombu

134 rabbit_host = 192.168.0.11

136 rabbit_password = rabbitpass


400 [keystone_authtoken]

401 auth_uri = http://192.168.0.11:5000

402 auth_host = 192.168.0.11

403 auth_protocol = http

404 auth_port = 35357

405 admin_tenant_name = service

406 admin_user = neutron

407 admin_password = neutronpass

408 signing_dir = $state_path/keystone-signing


410 [database]

416 #connection = sqlite:////var/lib/neutron/neutron.sqlite

417 connection = mysql://neutron:neutrondbpass@192.168.0.11/neutron


/etc/neutron/l3_agent.ini 파일을 열어 인터페이스 드라이브를 OVSInterfaceDriver로 사용하겠다고 설정해준다.


# l3_agent.ini 파일 설정

$ sudo vi /etc/neutron/l3_agent.ini

1 [DEFAULT]

11 interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

23 use_namespaces = True


/etc/neutron/dhcp_agent.ini 파일을 열어 그림과 같이 설정해준다.


# dhcp_agent.ini 파일 설정

$ sudo vi /etc/neutron/dhcp_agent.ini

1 [DEFAULT]

16 interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

31 dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

35 use_namespaces = True


/etc/neutron/metadata_agent.ini 파일을 열어 keystone 인증정보를 수정한다.


# metadata_agent.init 파일 설정

$ sudo vi /etc/neutron/metadata_agent.ini

1 [DEFAULT]

6 auth_url = http://192.168.0.11:5000/v2.0

7 auth_region = regionOne

12 admin_tenant_name = service

13 admin_user = neutron

14 admin_password = neutronpass

20 nova_metadata_ip = 192.168.0.11

29 metadata_proxy_shared_secret = metadatasecret


ml2_conf.ini 파일을 열어서 네트워크 타입과 드라이버 정보를 다음과 같이 설정한다. 이 때 [ovs] 항목을 추가해야 되며 local_ip는 eth1에 해당하는 IP로 설정해야 한다.


# ml2_conf.ini 파일 설정

$ sudo vi /etc/neutron/plugins/ml2/ml2_conf.ini

1 [ml2]

5 type_drivers = gre

12 tenant_network_types = gre

17 mechanism_drivers = openvswitch


42 [ml2_type_gre]

44 tunnel_id_ranges = 1:1000


46 [ovs]

47 local_ip = 10.10.10.21

48 tunnel_type = gre

49 enable_tunneling = True


64 [securitygroup]

67 firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver

68 enable_security_group = True

69 metadata_proxy_shared_secret = metadatasecret


openvswitch 대몬을 재시작하고 내주 인스턴스의 IP를 관리할 br-int을 openvswitch에 추가한다.


# br-int 추가

$ sudo service openvswitch-switch restart

$ sudo ovs-vsctl add-br br-int

ovs-vsctl: cannot create a bridge named br-int because a bridge named br-int already exists


외부 인터넷과 연결 될 br-ex를 openvswitch에 추가하고 br-ex에 물리적인 네트워크 카드를 연결한다.


네트워크 노드에서 IP를 설정할 때 인스턴스와 외부와 통신하기 위해 eth2에 manual IP로 설정했었는데 eth2를 다음과 같이 연결하면 된다.


# br-ex 추가

$ sudo ovs-vsctl add-br br-ex

$ sudo ovs-vsctl add-port br-ex eth2


neutron 서비스들을 모두 재시작한다.


# neutron 서비스 재시작

$ sudo service neutron-dhcp-agent restart; sudo service neutron-plugin-openvswitch-agent restart; sudo service neutron-dhcp-agent restart; sudo service neutron-metadata-agent restart


▶ openstack 클라우드 기본개념

▶ openstack 클라우드 구축 (네트워크 설정)

▶ openstack 클라우드 구축 (컨트롤러 노드 설치)

▶ openstack 클라우드 구축 (컴퓨터 노드 설치)

▶ openstack 클라우드 구축 (Neutron 네트워크 생성)

▶ openstack 클라우드 구축 (클라우드 이미지 생성)

▶ openstack 클라우드 구축 (클라우드 이미지 등록)

▶ openstack 클라우드 구축 (그룹 및 사용자 생성)

▶ openstack 클라우드 구축 (인스턴스 생성)

▶ openstack 클라우드 구축 (스토리지 생성)

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유