일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 하이퍼바이저
- 물걸레자동세척로봇청소기
- 나르왈프레오
- hopfield network
- 갤럭시탭S8울트라
- 멤버십
- 삼성소프트웨어멤버십
- 고려대학교
- 신경망
- 빅데이터
- 구글 앱 엔진
- Python
- 신경회로망
- BAM
- 인공지능
- 물걸레로봇청소기추천
- NarwalFreo
- Friendship
- Google App Engine
- Bidirectional Associative Memory
- Neural Network
- 동아리
- SSM
- 삼성
- 가상화
- 파이썬
- 증강현실
- 삼성전자 소프트웨어멤버십 SSM
- 패턴 인식
- 패턴인식
- Today
- Total
정보공간_1
[4기 강북 김민호] Cloud Computing 환경 구성하기 (3) 본문
[4기 강북 김민호] Cloud Computing 환경 구성하기 (3)
알 수 없는 사용자 2013. 11. 20. 18:18안녕하세요. 강북멤버십 20-2기 김민호입니다.
벌써 3번째 포스팅이네요. 이번 포스팅에서는 지난 포스팅에 이어서 OpenStack을 구성하기 위한 Network Node의 설치 방법에 관해 설명드리겠습니다.
설치에 필요한 준비 사항은 이전 포스팅에 설명되어있으니 참고하시면 좋겠습니다. 지금부터 네트워크 노드를 구성하는 방법에 대해서 설명하겠습니다. 네트워크 노드의 경우 OpenStack에서 네트워크와 관련된 모든 업무를 수행하게 됩니다. 네트워크 노드에서는 다음과 같은 기능들을 제공합니다.
- Virtual Bridging(OpenvSwitch + Neutron Agent) with tunneling
- DHCP Server(Neutron DHCP Agent)
- Virtual Routing(Neutron L3 Agent)
# sudo apt-get install ubuntu-cloud-keyring
- /etc/apt/sources.list.d/cloud-archive.list에 다음 내용을 추가합니다.
deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main
- 다음으로 저장소를 업데이트와 업그레이드를 실시 합니다.
# sudo apt-get update && apt-get upgrade
- OpenStack Grizzly 버전의 저장소를 추가 합니다. 위치는 /etc/apt/sources.list.d/grizzly.list 입니다.
deb http://archive.gplhost.com/debian grizzly main
deb http://archive.gplhost.com/debian grizzly-backports main
- 마찬가지로 저장소를 업데이트 합니다.
# apt-get update
# apt-get install gplhost-archive-keyring
# apt-get upgrade
- /etc/network/interfaces에서 네트워크 인터페이스 카드 설정을 합니다.
# Internal Network
auto eth0
iface eth0 inet static
address 10.10.10.9
netmask 255.255.255.0
# External Network
auto eth1
iface eth1 inet static
address 10.0.0.9
netmask 255.255.255.0
gateway 10.0.0.1
dns-nameservers 8.8.8.8
- /etc/sysctl.conf를 수정합니다.
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
- 네트워크를 재시작합니다.
- 변경한 sysctl설정을 적용합니다.
# sysctl -e -p /etc/sysctl.conf
- /etc/hosts에 다른 노드들의 아이피 정보를 등록합니다.
127.0.0.1 localhost
10.10.10.10 controller
10.10.10.9 network
10.10.10.11 compute01
- ntp를 설치합니다.
# sudo apt-get install ntp
* Open vSwitch
- 네트워크에 필요한 패키지들을 설치합니다.
# apt-get install neutron-plugin-openvswitch-agent neutron-dhcp-agent neutron-l3-agent
- Open Vswitch를 시작합니다.
# service openvswitch-switch start
- 외부와 내부 네트워크 브리지를 생성합니다.
# ovs-vsctl add-br br-ex
# ovs-vsctl add-port br-ex eth1
# ovs-vsctl add-br br-int
※ 참고 : br-ex에 연결하는 포트는 이전 포스팅에 그러져 있는 네트워크 구성에 맞춰주면 됩니다. 여기서 eth1이 외부 네트워크와 연결된 네트워크 인터페이스이기 때문에 br-ex에 연결시키게 됩니다. br-ex는 가상 머신이 외부 네트워크로 통신을 하기 위한 통로이고, br-int는 가상 머신의 내부 연결을 위한 통로가 되겠습니다.
- 다음으로 설정해주는 것은 외부 네트워크로 나가기 위한 인터페이스를 br-ex로 설정을 해줍니다.
/etc/network/interface 설정을 아래와 같이 변경합니다.
auto eth1
iface eth1 inet manual
up ip address add 0/0 dev $IFACE
up ip link set $IFACE up
down ip link set $IFACE down
auto br-ex
iface br-ex inet static
address 10.0.0.9
netmask 255.255.255.0
gateway 10.0.0.1
IP address 정보 업데이트 해줍니다.
# ip addr del 10.0.0.9/24 dev eth1
# ip addr add 10.0.0.9/24 dev br-ex
- 다음은 네트워크를 재시작해줍니다.
- Cloud Controller를 통해 Compute노드들이 인터넷에 접근할 수 있도록 하기 위하여 간단한 NAT 정보를 추가해줍니다.
# iptables -A FORWARD -i eth1 -o br-ex -s 10.10.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
# iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# iptables -A POSTROUTING -s 10.10.10.0/24 -t nat -j MASQUERADE
* OpenStack Networking
- /etc/neutron/neutron.conf 파일을 수정합니다.
[DEFAULT]
verbose = True
rabbit_password = password
rabbit_host = 10.10.10.10
[keystone_authtoken]
auth_host = 10.10.10.10
admin_tenant_name = service
admin_user = neutron
admin_password = password
- /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini 파일을 수정합니다.
[database]
sql_connection = mysql://neutron:password@10.10.10.10/neutron
[ovs]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
local_ip = 10.10.10.9
[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
- DHCP 관련된 /etc/neutron/dhcp_agent.ini 설정을 수정합니다.
[DEFAULT]
enable_isolated_metadata = True
enable_metadata_network = True
- /etc/neutron/metadata_agent.ini 설정을 수정합니다.
[DEFAULT]
auth_url = http://10.10.10.10:35357/v2.0
auth_region = RegionOne
admin_tenant_name = service
admin_user = neutron
admin_password = password
nova_metadata_ip = 10.10.10.10
metadata_proxy_shared_secret = password
- Neutron 서비스들을 재시작해줍니다.
# service neutron-plugin-openvswitch-agent start
# service neutron-dhcp-agent restart
# service neutron-metadata-agent restart
# service neutron-l3-agent restart
* Virtual Networking
이제 가상머신의 내부 네트워크를 구성하기 위한 작업을 수행해보도록 하겠습니다. 가상 머신에 할당될 Private Network의 네트워크를 생성하도록 하겠습니다.
- 커맨드라인 명령어를 이용하여 internal network를 구성하기 위한 openrc 파일을 생성합니다. 이전 포스팅에서 Controller의 openrc와 동일한 파일을 생성하여 적용시켜줍니다.
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=password
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export OS_SERVICE_ENDPOINT="http://localhost:35357/v2.0"
export OS_SERVICE_TOKEN=password
- 위의 설정파일을 source 명령어로 적용시켜준 다음 아래의 bash script 파일을 다운받아 internal 네트워크가 구성되도록 해줍니다.
이제 가상머신에서 사용할 내부 네트워크가 구성되었습니다.
* L3 Configuration
마지막으로 가상 머신에서 외부 네트워크로 접근하기 위한 Neutron의 L3 서비스 설정을 해줍니다.
- 외부 네트워크를 생성해줍니다.
# neutron net-create public --router:external=True
- 생성한 외부 네트워크의 서브넷을 생성해줍니다. 여기서 설정하는 서브넷 대역대는 br-ex(eth1)과 같은 대역대로 설정해줍니다.
# neutron subnet-create --ip_version 4 --gateway 10.0.0.1 public 10.0.0.0/24 --allocation-pool start=10.0.0.200,end=10.0.0.250 --disable-dhcp --name public-subnet
- 라우터의 게이트웨이에 생성한 외부 네트워크를 연결 시켜줍니다.
# neutron router-gateway-set demo-router public
자 이제 OpenStack의 네트워크 노드의 구성이 끝났습니다. Contoller와 마찬가지고 설치 과정이 조금 복잡한편입니다. 또한 설정 파일들에 관한 정보가 잘못되면 동작하지 않을 수도 있으니 주의 깊게 설정을 하셔야 합니다.
다음 포스팅은 Cloud Computing 환경을 구성하기 위한 마지막 노드인 Compute Node의 설치 방법에 관해서 알아보도록하겠습니다.
참고 사이트 : http://docs.openstack.org
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[4기 강북 김민호] Cloud Computing 환경 구성하기 (5) (0) | 2013.11.21 |
---|---|
[4기 강북 김민호] Cloud Computing 환경 구성하기 (4) (0) | 2013.11.21 |
[4기 강북 김민호] Cloud Computing 환경 구성하기 (2) (0) | 2013.11.19 |
[4기 강북 김민호] Cloud Computing 환경 구성하기 (1) (1) | 2013.11.19 |
[4기 신촌 김시재] Scrnsave 라이브러리를 이용한 화면보호기 #4 (0) | 2013.11.14 |