📘 Day 55 (2025.08.29.FRI) - OpenStack 설치(6)

💻 인스턴스 생성
openstack server create \
--flavor m1.small \
--image Ubuntu2204 \
--network private \
--security-group 7e3bd4df-0331-46d6-a7c1-1a4beda5dc64 \
--key-name mykey \
test-instance
sudo tail -f /var/log/nova/nova-compute.log
⚙️ Compute 노드 - Linux Bridge 설정

/etc/neutron/plugins/ml2/linuxbridge_agent.ini 수정:

[linux_bridge]
physical_interface_mappings = provider:eth1 # eth1 대신 실제 NIC 이름

[vxlan]
enable_vxlan = true
local_ip = 192.168.0.242
l2_population = true

[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
lsmod | grep br_netfilter
sudo sysctl -a | grep bridge-nf

sudo systemctl restart neutron-linuxbridge-agent
sudo systemctl status neutron-linuxbridge-agent
🔑 Controller - 키페어 생성
openstack keypair list

openstack keypair create mykey > mykey.pem
chmod 600 mykey.pem
🌐 Compute 노드 - Open vSwitch ML2 설정

/etc/neutron/plugins/ml2/ml2_conf.ini 수정:

[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security,qos

[ovs]
bridge_mappings = provider:ens33
local_ip = 192.168.0.242

[vxlan]
enable_vxlan = true
local_ip = 192.168.0.242
l2_population = True

[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

[agent]
tunnel_types = vxlan
l2_population = True
sudo apt purge neutron-linuxbridge-agent -y
sudo apt install neutron-openvswitch-agent openvswitch-switch -y
sudo systemctl restart openvswitch-switch neutron-openvswitch-agent
sudo systemctl enable openvswitch-switch neutron-openvswitch-agent
🌐 OVS 브리지 구성 (Compute)
sudo ovs-vsctl add-br br-provider
sudo ovs-vsctl add-port br-provider enp0s3

sudo ip addr flush dev enp0s3
sudo ip addr add 192.168.0.242/24 dev br-provider
sudo ip link set br-provider up

SSH 재접속 후 확인:

sudo ovs-vsctl show
sudo systemctl restart openvswitch-switch neutron-openvswitch-agent

sudo ovs-vsctl del-port br-provider ens33

sudo ip addr flush dev enp0s3
sudo ip addr add 192.168.0.242/24 dev br-provider
sudo ip link set br-provider up

sudo systemctl restart openvswitch-switch neutron-openvswitch-agent
⚙️ ML2 OVS Agent 재설정

/etc/neutron/plugins/ml2/ml2_conf.ini:

[ovs]
bridge_mappings = provider:br-provider
local_ip = 192.168.0.242
sudo systemctl restart openvswitch-switch neutron-openvswitch-agent
🖧 OpenStack 네트워크 확인
openstack network agent list

openstack port list --network provider
ip link show br-provider
ip link show enp0s3
💻 Nova - OVS VIF Driver 설정

/etc/nova/nova.conf:

[libvirt]
vif_driver = nova.virt.libvirt.vif.LibvirtOpenVSwitchDriver
[neutron]
url = http://controller:9696
auth_url = http://controller:5000/v3
username = neutron
password = 123456
project_name = service
user_domain_name = Default
project_domain_name = Default
region_name = RegionOne
auth_type = password
service_metadata_proxy = True
metadata_proxy_shared_secret = 123456

linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver
sudo systemctl restart nova-compute
sudo systemctl status nova-compute
📡 Provider 네트워크 공유 설정
openstack network set --share provider
📝 마무리

ML2 설정에서 [ml2_type_flat] 주석 처리, LinuxBridge 관련 설정 제거 후 OVS 기반으로 전환 완료.