Categories
L3/routing OpenStack

Routing two external networks

Welcome back! Unlike other posts in this blog, used to advertise my own achievements in OpenStack (really?, how you dare), this post will help you to understand how can you connect one virtual machine to two external networks. Of course, avoiding the direct approach of directly creating two ports on each network. No, let’s do […]

Categories
High availability (HA) OpenStack OVS/OVN

High availability router gateway ports in OVN

Today’s post is… a bit dense, I will admit. And to make things a bit more complex, I’m going to talk about the external ports too but for a reason. Actually this post comes from a bug (no way!) that claims that the external ports are usually bound to chassis different to the router gateway […]

Categories
DHCP OpenStack

Reduce the Neutron DHCP agent redundancy

How long have you been waiting when the DHCP agent service was restarted? If you raised your hand and shouted “too long!”, this is your post. OpenStack Neutron DHCP agent. From the Red Hat OSP16 documentation, “the OpenStack Networking DHCP agent manages the network namespaces that are spawned for each project network to act as […]

Categories
Database OpenStack

Neutron’s quota driver

Some months ago I implemented a new Neutron’s quota driver. The aim of this new driver, as described in the Launchpad bug 1926787 and Bugzilla bug 1955661, was to avoid the permanent database lock contention status generated when using the Neutron’s quota engine. Why that was happening? Follow me… What do we need to count? […]

Categories
OpenStack RabbitMQ

Debugging RabbitMQ issues in OpenStack

Let’s start this new post entry in “professor” mode, doing a statement: “AMQP is the messaging technology chosen by the OpenStack cloud“. This link refers to Nova but is valid for any other OpenStack project. AMQP is used to facilitate the inter process communication. For example, if the Neutron DHCP agent needs to retrieve some […]

Categories
OpenStack Tech

Testing Keepalived

Welcome back! I just finished my lethargic aestival period, emerging from the swimming pool like a manatee. Back to the (awaited) office routine, I had a clash with Keepalived; actually with around four hundred instances. Yes, 400 instances spawned to control the same number of high availability routers in OpenStack. The OpenStack L3 agent is […]

Categories
OpenStack Tech

Network namespaces and containers

Openstack can be deployed in several ways. For example, for testing and development, devstack is used. For production environments, Kolla-Ansible provides a set of tools to define, create and deploy a set of containers running the needed services. TripleO is another deployment tool that can be configured to run the services on containers. Neutron, the […]

Categories
OpenStack

Database query testing in OpenStack Neutron

Welcome to the exciting world of databases! At least for the project in OpenStack I know best, which is Neutron. Neutron, and if I’m not wrong all the OpenStack projects, use SQLAlchemy as ORM library. Here you can read how this ORM was introduced in OpenStack to be the only API to talk to the […]

Categories
OpenStack Tech

Python multithreading

As commented in my introductory post, this blog pretends to be a kind of work diary, and sometimes will be the shoulder to cry on. In relation to threads, regardless of the programming language, a programmer needs to be mentally strong. Jokes aside, I would like first to introduce this post with some links to […]

Categories
OpenStack Tech

OpenStack local git mirror

If you are an OpenStack developer, you will know about devstack. This deployment tool, used only for testing and development, will retrieve all needed OpenStack projects from a defined git server; by default https://opendev.org. The “stacking” process (collect all needed projects, install all dependencies and start the projects as configured) usually takes around 10 minutes. […]