A few questions about PLM (parallel libvirt manager)

12 views
Skip to first unread message

huan xiong

unread,
Jun 7, 2024, 6:39:05 AM6/7/24
to cbtool-users


Hi, I’m setting up CBTOOl to work with PLM (parallel libvirt manager) and have a few questions on how PLM works. I’d appreciate any help.


(I’m referring to the doc at https://github.com/ibmcb/cbtool/wiki/HOWTO:-Preparing-your-cloud-to-be-driven-by-CBTOOL#plm)


Q1) The doc says rinetd should be installed on host to facilitate passwordless root login via SSH.


   “The CBTOOL ON will also require passwordless root access via SSH to all hosts running a Libvirt daemon. We fully agree that it is a far from acceptable situation, but until we have a "blessed" (by the Libvirt community) way of performing instance port mapping on the hosts, we have to rely on rinetd.”


I don’t understand it. I think the common approach to set up passwordless SSH login is using public key. How does rinetd helps it and how to set it up?


Q2) The doc doesn’t describe the architecture of PLM. So I’m confused how cb command running at orchestrator node accesses the libvirtd running on host. Does it ssh into host as root and then run, say, virsh commands on host, or does it connects libvirtd remotely through Python API? The docs says libvirtd.conf should be modified so that libvirtd runs at a TCP port, which suggests the latter approach. However, when I installed the orchestrator node by running “install -r orchestrator --clouds=PLM”, I checked the log and found that the script didn’t install libvirt python client module. On the other hand, however, the file lib/clouds/plm_cloud_ops.py (I suppose it’s the code called by cb to access libvirtd running on host) does import libvirt module. Does that mean it’s a bug that the install script doesn’t install libvirt?


Q3) What’s plmserver.py in plm directory? It seems a standalone program to starts a server, but I search the entire cbtool directory (I did “grep -r plmserver” under cbtool source code directory) but can’t find it’s referenced anywhere.


Could some please describe a bit the architecture of PLM and how to use it? Thanks!


Background: I'm planning to use cbtool (and perhaps speccloud) to test the performance of a public cloud. I'm using PLM as backend to get myself familiar with cbtool usage (I used it some years ago but forgot the details). I choose PLM because I don't have access to a private cloud at this moment.

huan xiong

unread,
Jun 12, 2024, 6:25:14 AM6/12/24
to cbtool-users
So I have figured out most of the details how PLM works.

1) libvirt has built-in support for remote access. For unclear reason CBTOOL authors seems to prefer "qemu+tcp", which I think has been obsoleted by "qemu+ssh" (perhaps "qemu+ssh" wasn't available at the time when PLM was implemented? Just my guess). I think another benefit of using "qemu+ssh" is that user doesn't need to modify libvirtd config file to allow network access (though I didn't verify this).

2) The plm/plmserver.py seems to be dead code and isn't used anywhere. I guess it might be the initial implementation of PLM and wasn't deleted.

3) I suspect rinetd is required in scenario where a) workload vms use NAT, and b) orchestrator node runs outside PLM (not in a vm). In this scenario port mapping is required to allow orchestrator node to access workload vm. In my scenarios, however, I run orchestrator in a vm, so I just ignore rinetd.

Hope it helps for other people who'll use PLM.

Reply all
Reply to author
Forward
0 new messages