Expose duplicate UUID to kvm guest - virtualization

I'd like to run several VMs/domains at once that expose the same SMBIOS system UUID to the guest. I need to test several versions of software that uses SMBIOS UUID value to generate unique ID. For some reason libvirt demands that domain's top-level UUID is the same as UUID exposed to VM via SMBIOS. (as per libvirt domain xml format documentation)
If this entry is provided alongside a top-level uuid element, then the
two values must match.
Therefore I cannot run two identical domains (from guest's perspective) in single libvirt instance.
Is there a way around this limitation?

There is no way around this. Having matching UUIDs visible from host and guest is one of the guarantees that libvirt provides to applications, allowing things like system monitoring agents to correlate guests OS with host OS they are running on.

Related

What is the common way to discovery physical servers in a datacentre?

in a modern datacentre, it is said that after a physical server get plugged into the switch, then it can be discovered and then registered to the datacentre inventory system automatically without human intervention , and later one the system can be provisioned by a default os using pxe like technical, also automatically.
What is the common way of doing physical server auto discovery? The way I know a little bit is:
physical server management console(ILO)bootup automatically by querying IP address from the IDC dhcp server
-A management system sending broadcast ping to the whole network, any ip address which responses and has no record in the system is considered to be a new system.
management server connect to the server ILO using standard IPMI protocol and set the interface pxe configuration, then power cycle the server
When server boot up, a pxe installation is processed. server information can be registered to the inventory system during the installation procedure.
is there any other good way of doing this?
You are on the correct path if you are using the iLO. iLO supports LLDP discovery. An additional option will be to manage it from the iLO RESTful API that is also Redfish conformance.
SSDP is certainly very common and popular for this purpose outside the datacenter. An example of performing such discovery can be found here:
https://stackoverflow.com/questions/18363833/how-can-i-list-upnp-server-renderer-in-command-line-console-mode-on-linux
Which uses the gssdp-discover utility.
Redfish standard, which all major vendors support, specifies the
gssdp-discover -i eth0 --timeout=3 --target=urn:dmtf-org:service:redfish-rest:1
Ana- HPE Employee

number of lines returned from TapiManager

I`m working with Avaya IP Office TAPI2 service provider.
I have a question regarding how the lines available to work with are obtained.
If i run a test piece of code from my dev PC, to initiate a TapiManager object and work with the collection of TapiLine objects exposed by TapiManager.Lines
the number of lines returned is more than the number of lines which are exposed on a server running the same test windows forms app. Both machines, i.e. my dev PC and the server have the same TAPI2 provider installed and both are connecting to the same switch IP address under Third Party
dev PC returns something like 460 lines, server has 30 less at 430, and entries which are missing i`m assured by our tech guys that the extentions/lines are configured the same as ones which do appear in the available list.
Thanks
The Avaya TSP exposes two types of IP Office objects:
Users (extensions and TAPI WAV users)
Hunt Groups
The devices listed as available lines, when configured in third-party mode, is dependent on whether the TAPI WAV and ACD queues checkboxes are selected (see Control Panel|Phone and Modem Options).
I would verify that both servers have their TAPI options configured identically in the TSP settings in Phone and Modem Options, e.g. you may not have ACD Queues checked on the server.
FYI - you can also use the Ex Directory attribute (see Users in the IP Office Manager) to control which extensions are visible via TAPI but that will have the same affect on both servers.
The only other thing I think of is whether the machines were restarted after new extensions were added to the IP Office? The TSP will only download a list of lines at startup so extensions added after the TSP is loaded by Windows will not be aware of the new extensions.
If you can enable the TSP logging for the Avaya TSP and include I can review the difference between the two machines.

Can NS3 EMU be applied on different machines in WAN?

we are currently considering whether ns3 satisfying our requirements, we're looking for a convenient tool to run in distributed devices in the real network (every kind of possible connections) and capture the network performance data (like a sniffer). I realize that the primary purpose of ns3 is to simulate network topology in a single machine, but its emu module sounds promising and the flow monitor can save our effort on data capture.
In the following link
http://www.nsnam.org/wiki/HOWTO_make_ns-3_interact_with_the_real_world
it is declared that NS-3 EMU can be applied to inject simulated nodes interacting with real live network, and 3 kinds of testbed are given. However the first solution, virtual machine vmware testbed is still woking within LAN -- in promiscuous mode the virtual machines network card are listening to all LAN broadcasts so that the emu-udp-echo server and client can find each other.
My question is, is it possible that the emu-udp-echo server/client running in different, physical systems from different positions in wide network?
e.g. in different cities or from different network providers, given ip address of the hardware where the other ns-3 node is running? if it is possible, how can i specify the "real" ip address and port for the node, instead of assign a virtual ipv4 address?
Thanks a lot.
Yes, while the documentation describes how to perform this using virtual machines, this can be done in general on real hardware. Since that HOWTO was written, there has been additional work on providing helpers for running this type of experiment, including running on PlanetLab testbed machines. This documentation describes the generalized file descriptor NetDevice, added to the ns-3.17 release: http://www.nsnam.org/docs/release/3.19/models/html/fd-net-device.html. A similar example to the one described in that HOWTO is found in the file fd-emu-udp-echo.cc.
When using emulation mode on real networks, configuration of the MAC addresses and IP addresses must be done carefully. First, the device must be able to be put into promiscuous mode. Second, the MAC address needs to be different than the hardware address of the NIC. If you intend to be riding on top of an active NIC with existing IP address (in use for other Internet traffic), you'll need to have another IP address for ns-3 that is within the right link subnet. If instead you want to dedicate the NIC to ns-3 use, then do not assign the IP address to the host NIC and just assign it to the ns-3 configuration.
The PlanetLab example also shows another configuration that uses Tap devices to send data to/from PlanetLab testbed nodes. Some of this configuration is specific to how PlanetLab works, but the use of Tap device bridged to an ns-3 device may also facilitate emulation.

How to set ip for vm from outside [closed]

I need to set ip from outside of virtual machine.
Now we use dhcp server to bind static ip with their MAC.
But when the number of vms is larger and large, that's not easy for administer.
I want to make one interface for the clients to set the ip of the vm when creating it.
By now, i know i can mount the vm disk and config the network setting before creating the vm.
there is one problem for that, the vm disk type may be various, and sometimes they may have totally different partition structure, and may be including LVM,etc. Besides this, i don't know whether it is possible to config ip for Windows operating system with this method.
I don't know how they do this, i mean those Virtual-machine product, like Vmware.
Edit:If those virtual-machine product don't give one interface for client to set ip for vm, then how they manage their ips. we have many many vms, and we specify ip for each of them, the client just use it, they are not authorized to set their ip from within the os, though set, it won't make any sense, they will can't connect to the internet.
I think there must be one approach for this.
Thanks, any help is appreciated.
First of all VMWare does not provide a way to set the IP for the host from it's interface. At least not a general way. If you really want to modify the guest filesystem have a look at libguestfs which provides tools and an api to modify guest images.
You may also want to have a look at foreman smart proxy to manage/control your dhcp server via a REST api. If you use directly theforeman it will allow you to manage the ip addresses via a webui.

How do you connect REDHAWK devices on different machines?

I am trying to run a waveform with components operating on distinct machines. That is, I want A->B where component A runs on the GPP on machine 1 and component B runs on the GPP on machine 2. The CORBA nameserver on system A is visible in REDHAWK on system B, but I cannot access remote devices or components when I run a waveform.
How can I make the devices on one machine available to REDHAWK running on another?
Thanx for your assistance!
-jerhill
The essential thing for spreading REDHAWK components and devices across multiple machines is making sure that your CORBA communication works correctly between the machines. This usually amounts to configuring /etc/omniORB.cfg correctly. First, on one machine, you should have omniNames and omniEvents running, and setup your config per section 2.6 of the documentation. For reference:
InitRef = NameService=corbaname::127.0.0.1
InitRef = EventService=corbaloc::127.0.0.1:11169/omniEvents
On the second machine, your InitRef's must point to the first machine. If the first machine was 192.168.1.100, then your second machine's config could contain:
InitRef = NameService=corbaname::192.168.1.100
InitRef = EventService=corbaloc::192.168.1.100:11169/omniEvents
You should be able to verify this is working correctly on the second machine with:
$ nameclt list
The next issue you need to tackle is making sure that CORBA objects are listening on the appropriate network interfaces, and are publishing information in their IORs that allows them to be reached. In each of your config files, I recommend you add a line to tell omniORB what endpoint CORBA objects created on that machine should listen on. For example, on your first machine:
endPoint = giop:tcp:192.168.1.100:
endPoint = giop:unix:
This tells omniORB that CORBA objects should listen on a TCP port of their choosing on 192.168.1.100. It also adds a Unix pipe for fast access by objects on the same machine. omniORB will publish this information in the IOR for that object. What you choose here is important - if you use an IP that other machines can't reach, or use a hostname that other machines can't resolve then CORBA connections will fail.
After you've configured the endPoint setting on both machines, you may find it useful to inspect the information contained in your IORs. If you can access the naming service then you can retrieve IORs for your objects. For example, if you had a domain named 'REDHAWK_DEV' running, you can get the domain manager's IOR via:
$ nameclt resolve REDHAWK_DEV/REDHAWK_DEV
Then, feed the IOR to catior:
$ catior IOR:012345...
catior will decypher the IOR for you and show you what address and port a client would connect to.
Based on the fact that programs on B can see the name service on A, then I assume that the problem relates to Device/Device Manager configuration.
Make sure that the Device Manager on B meets these criteria:
the id attribute of the deviceconfiguration element of the dcd.xml file is unique
the id attribute of the GPP's componentinstantiation element on the dcd.xml file is unique
the name attribute of the namingservice element on the dcd.xml file is the Domain you are trying to connect to (of the form DomainName/DomainName)
you do not have a Domain Manager running on B that has a colliding name with the Domain Manager on A (an error should occur if you do that)
If these criteria are met and your system still does not work, please post the stdout from running nodeBooter from command-line for both the Device Manager that's not registering and the Domain Manager you're trying to register with.

Resources