CentOS 7/RHEL 7/Fedora 20 Support
-
due to time limits for projects, I am also running another FOG Server but with Ubuntu 14.04 LTS and I am having the same issue of the Multicast not working even on a flat/unmanaged switch…
So the problem with multicast does not seem to be isolated to CentOS 7… What is the name of the service that handles the multicast?? I need to see if it is running to try to restart it to see if that does it…
-
Fount the answer on another thread…
[FONT=Consolas]sudo service FOGMulticastManager stop
sudo killall udp-sender
sudo killall udp-sender
sudo killall udp-sender
sudo service FOGMulticastManager start[/FONT] -
[quote=“Jose Antonio Sanchez, post: 35438, member: 25349”]Fount the answer on another thread…
[FONT=Consolas]sudo service FOGMulticastManager stop[/FONT]
[FONT=Consolas]sudo killall udp-sender[/FONT]
[FONT=Consolas]sudo killall udp-sender[/FONT]
[FONT=Consolas]sudo killall udp-sender[/FONT]
[FONT=Consolas]sudo service FOGMulticastManager start[/FONT][/quote]Did that work on CentOS 7 too? Didn’t think it would work for me because it seems to be an issue of MulticastManager not thinking the node is a storage node.
-
[quote=“madskillz23, post: 35439, member: 8206”]Did that work on CentOS 7 too? Didn’t think it would work for me because it seems to be an issue of MulticastManager not thinking the node is a storage node.[/quote]
I have to report that stopping the FOGMulticastManager server and starting it again does not solve the multicast problem on CentOS 7…
Any ideas??
P.S. On my Ubuntu 14.04 LTS install of fog 1.2.0 the FOGMulticastManager.service along with the other two FOG services are not listed…
-
[quote=“Jose Antonio Sanchez, post: 35449, member: 25349”]I have to report that stopping the FOGMulticastManager server and starting it again does not solve the multicast problem on CentOS 7…
Any ideas??
P.S. On my Ubuntu 14.04 LTS install of fog 1.2.0 the FOGMulticastManager.service along with the other two FOG services are not listed…[/quote]
Syntax is different on non-systemd based systems. “service FOGMulticastManager status” will work just fine. The “.service” is systemd specific. Centos7 uses systemd, Ubuntu does not yet.
I might have some ideas on multicast in a bit, I’m digging through source code.
-
[quote=“madskillz23, post: 35450, member: 8206”]Syntax is different on non-systemd based systems. “service FOGMulticastManager status” will work just fine. The “.service” is systemd specific. Centos7 uses systemd, Ubuntu does not yet.
I might have some ideas on multicast in a bit, I’m digging through source code.[/quote]
Correct… on Ubuntu I did:
[INDENT=1]initctl list[/INDENT]
[INDENT=1] [/INDENT]
and found no FOG services at all… Which is weird (or the services should be listed elsewhere???), but I have already imaged a few labs with Ubuntu 14.04 with Multicast no problem… well, tftpd had to be restarted and on another standalone Ubuntu 14.04 box dhcp had to be started manually…Seems like CentOS and Ubuntu keep having service startup problems…
-
[quote=“Jose Antonio Sanchez, post: 35452, member: 25349”]Correct… on Ubuntu I did:
[INDENT=1]initctl list[/INDENT]
[INDENT=1] [/INDENT]
and found no FOG services at all… Which is weird (or the services should be listed elsewhere???), but I have already imaged a few labs with Ubuntu 14.04 with Multicast no problem… well, tftpd had to be restarted and on another standalone Ubuntu 14.04 box dhcp had to be started manually…Seems like CentOS and Ubuntu keep having service startup problems…[/quote]
Ubuntu 14.04 and CentOS 7 are both not recommended for production fog systems at this point. initctl seems like a systemd thingy, which shouldn’t work on Ubuntu. Could be wrong on that, I’ve personally never used it.
On a fun note, here’s the logic behind the exception on my multicast.log printout. Working on figuring out what’s going wrong with that.
[CODE]$StorageNode = current($this->FOGCore->getClass(‘StorageNodeManager’)->find(array(‘isMaster’ => 1,‘isEnabled’ => 1,‘ip’ => $this->FOGCore->getIPAddress())));
if (!$StorageNode || !$StorageNode->isValid())
throw new Exception(sprintf(" | StorageNode Not found on this system."));[/CODE] -
[CODE] * Setting up and starting MySQL…Note: Forwarding request to ‘systemctl enable mysqld.service’.
Failed to issue method call: No such file or directory
OK[/CODE]
Note to developers, this is an issue in all systemd systems. Link to various solutions pasted below, it involves a simple systemd init script. I will try and roll my own, and post the results here, but you may choose to go in a different direction. Also possibly just changing it to “systemctl enable mariadb.service” would work as well.[url]http://superuser.com/questions/384365/systemctl-enable-differs-from-systemctl-start-how[/url]
-
Any developers have an idea why the $StorageNode in the following command isn’t valid here? Php is not my forte. I believe this is the first step into finding out why multicast doesn’t work on CentOS 7.
This is in 1.2.0/packages/web/lib/fog/MulticastManager.class.php
[CODE]$StorageNode = current($this->FOGCore->getClass(‘StorageNodeManager’)->find(array(‘isMaster’ => 1,‘isEnabled’ => 1,‘ip’ => $this->FOGCore->getIPAddress())));[/CODE] -
It attempts to find the storage node that is enabled, is the master, and is set to the localized FOG system. This is especially true for multi-node sites where the “main” fog server is not the one containing all of the images. That master/enabled system would be what’s handing out the Multicast, Image replication, and Scheduled task service information. In the case of nodes, there’s currently no way for us to get the logs off of those off scope nodes as it’s looking for the /opt/fog/log/{multicast.log,fogscheduler.log,fogreplicator.log} files off of the system you’re looking at the logs from. This is most likely why you’re seeing the “StorageNode not found on this system” message as the StorageNode is not being found for that system. Hopefully that helps clarify it?
-
Hi Tom, thank you for the response. The issue I have is that while my site has many FOG servers, they are now all independent and on separate subnets protected by firewalls. All of my CentOS 7 nodes I am testing are the ONLY fog servers on those subnets. They all are completely independent of one another, each one being responsible for PXE, httpd, imaging, and WOL etc. They are all master/enabled, and unicast works just fine from those servers. Also, doing manual multicast by manually sending the udp-cast command and a client debug task, I am able to multicast just fine.
I just took down the CentOS 7 server on one of the lab vlans, replaced it with a CentOS 6 FOG server, and now multicast works. The multicast log reports “*No Tasks found” by default. I seriously doubt any parts of the configuration in FOG have changed besides the OS’s in this new setup. I believe that $StorageNode should be returning the info of the current machine, and on CentOS 7 it is not, even though that server is master, enabled, and stores images.
I now believe this is a database issue, as on CentOS 7, the database/schema updater is never promted for on the web interface during the install process, because the installer script doesn’t properly handle systemd init scripts for mySQL. I will work on fixing and testing that part this afternoon, and see if that helps things.
-
I keep getting this on /opt/fog/log/multicast.log
StorageNode Not found on this system.
StorageNode Not found on this system.
StorageNode Not found on this system.
StorageNode Not found on this system.
StorageNode Not found on this system.
StorageNode Not found on this system.No multicast for me…
I followed the Troubleshooting steps for Multicast and booted clients on debug mode and that all works great…
I already checked permissions on /images to be 777
fog is the owner of images chown -R /images
.mntcheck files exist in /images and in /images/dev
NIC is set to ens32 instead of eth0
/etc/exports are correct
firewall disabled by systemctl disable firewalld
selinux disabled:
[INDENT=1][FONT=monospace][COLOR=#000000]sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/sysconfig/selinux[/COLOR][/FONT]
[FONT=monospace][COLOR=#000000]sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config[/COLOR][/FONT][/INDENT]
already restarted the nfs-server and all fog services FOGMulticastManager, FOGImageReplicator, FOGScheduler…
I can upload images
I can unicast to clients
re-ran the install script
still:StorageNode Not found on this system.
I did notice that the time on the multicast.log does not match the time on the system… would that affect anything???
running the “date” command returns the correct time, but multicast.log has time offset of
Right now its 11:38AM, but the log indicates:
[08-21-14 6:38:24pm] | StorageNode Not found on this system.
Any ideas???
-
This post is deleted! -
Here’s the code to fix the installer for MySQL in all redhat based distros. I tested it on my own system and it should work.
Still stuck on getting multicast working.
[CODE]ConfigureMySql()
{
echo -n " * Setting up and starting MySQL…";
RHVER=rpm -qa|grep release|xargs rpm -q --queryformat '%{VERSION}'|cut -c -1
;
if [ “$RHVER” == “7” ];
then
systemctl enable mariadb.service >/dev/null 2>&1;
systemctl restart mariadb.service >/dev/null 2>&1;
else
chkconfig mysqld on;
service mysqld restart >/dev/null 2>&1;
service mysqld status >/dev/null 2>&1;
fi
if [ “$?” != “0” ];
then
echo “Failed!”;
exit 1;
else
echo “OK”;
fi
}[/CODE] -
Here are the lines neccesarry to make NFS work in the install script. Could use the same selector template for rhel 7 versions as the code above in NFS, but it might be better to generalize something.
[CODE] systemctl restart nfs-server.service >/dev/null 2>&1;
systemctl restart rpcbind >/dev/null 2>&1;
systemctl enable rpcbind >/dev/null 2>&1;
systemctl enable nfs-server.service 2>&1;[/CODE] -
So I no longer think Multicast not working on CentOS 7 is related to a database issue. Tested by importing a functional Centos 6.5 Fog 1.2 database to the CentOS 7 install of fog and updating the users privileges. Anybody got any ideas?
-
Any update with CentOS 7 and Multicast issue? I managed to have a functional fog server (as far as tested) except Multicasting (“StorageNode Not found on this system”).
-
To get multicast working on CentOS7 you’ll need to modify the following line in function getIPAddress in /var/www/html/fog/lib/fog/FOGCore.class.php
from:
[CODE]exec(“/sbin/ifconfig | grep ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’| cut -d’:’ -f 2 | cut -d’ ’ -f1”, $arR, $retVal);[/CODE]to:
[CODE]exec(“/sbin/ip addr | grep -o ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/[0-9]{1,2}’ | cut -d/ -f1”, $arR, $retVal);[/CODE]If you have multiple interfaces with IP addresses you might need to use the following in the first portion of that line
[CODE]/sbin/ip addr list eth0[/CODE]
Replace eth0 with the interface you use for fog.
I haven’t tested this with Ubuntu but if the system has iproute2 package installed it should work.
-
[quote=“vinyard, post: 39767, member: 27465”]To get multicast working on CentOS7 you’ll need to modify the following line in function getIPAddress in /var/www/html/fog/lib/fog/FOGCore.class.php
from:
[CODE]exec(“/sbin/ifconfig | grep ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’| cut -d’:’ -f 2 | cut -d’ ’ -f1”, $arR, $retVal);[/CODE]to:
[CODE]exec(“/sbin/ip addr | grep -o ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/[0-9]{1,2}’ | cut -d/ -f1”, $arR, $retVal);[/CODE][…][/quote]
Thanks a lot vinyard, it works smoothly now
-
Good work guys. Here is the info you posted. I just rehashed it into the wiki.
[url]http://fogproject.org/wiki/index.php/Installation_on_CentOS_7#Multi-Cast_Issues[/url]