Rockstor on vanilla CentOS 7?

I’ve received a couple of emails from people interested in “enabling” Rockstor repo on vanilla CentOS 7. Though we don’t officially support this configuration and there could be incompatibilities particular to your CentOS install, thought I’d share some information here for everybody’s sake.

The short answer to the question is yes, you can convert vanilla CentOS 7 into Rockstor with a little bit of work. I’ll layout steps as I recall here. Give them a try and let us know.

First, Rockstor expects the root filesystem to be BTRFS. We do this because, sometime soon we want to provide snapshot’ed updates so in case something goes wrong, you can just reboot into the previous state. This is not supported yet, but soon it will be. If you want to make Rockstor work while having non-BTRFS for rootfs, unfortunately it’s a code change.

You can manually enable Rockstor repo by adding this section

[rockstor]
name=Rockstor 3 - x86_64
baseurl=http://rockstor.com/rockrepo/
enabled=1
gpgcheck=0
metadata_expire=1d

Or you can install the rockstor-release package which does it automatically, but does overwrite some system files and may conflict with centos-release package.

1. wget http://rockstor.com/rockrepo/rockstor-release-2-0.x86_64.rpm
2. rpm -ivh rockstor-release-2-0.x86_64.rpm

Once you’ve enabled the repo one way or the other, you can install rockstor

3. yum install rockstor

There is a initialization script that runs on boot called initrock. So if you just reboot after the last step, it will run automatically. You can also run it manually and avoid the reboot

4. reboot or run /opt/rockstor/bin/initrock

Among other things, initrock enables the rockstor service, which you can check with systemctl. At this point, the Web-UI is ready. Just go to https://

Note that we provide some custom rpms and they may or may not conflict with your CentOS. But good luck!

1 Like

finally in the meantime

I did  installed a panel over a standard rockstor installation

it is goog enough for my test needs

Thank you for sharing this!


I’m going to attempt to put rockstor ontop of Centos 6.6.  The reason for 6.6 is I can’t install the fibre channel target drivers that I need in 7.  This probably won’t work but what else is new?  :)

haha! good luck to you. Note that Rockstor doesn’t run the default CentOS kernel. Instead we choose a latest’ish elrepo kernel. May be your drivers are supported, worth giving it a try.

Thanks for the thought.  I suspected the kernel might be coming from elrepo.  Unfortunately no kernel supports the hardware out of the box.


My latest escapade was loading 4.0.4-1 + kernel-ml-devel and attemping to make the driver but it failed about halfway through.  I’m guessing that the kernel isn’t configured such that it will work.  I was able to get things working after compiling 3.18.9 with my own .config
perhaps I’ll try compiling vanilla 4.0.5 and see what else I can break.  I have no idea what I’m doing, this is terribly fun.

After following the steps on this guide, running a rescan returns:
expected string or buffer

[23/Aug/2015 03:20:51] ERROR [smart_manager.data_collector:351] Failed to update pool state… exception: Internal Server Error
[23/Aug/2015 03:20:51] ERROR [storageadmin.middleware:35] Exception occured while processing a request. Path: /api/commands/refresh-share-state method: POST
[23/Aug/2015 03:20:51] ERROR [storageadmin.middleware:36] expected string or buffer
Traceback (most recent call last):
File “/opt/rockstor/eggs/Django-1.6.2-py2.7.egg/django/core/handlers/base.py”, line 114, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “/opt/rockstor/eggs/Django-1.6.2-py2.7.egg/django/views/decorators/csrf.py”, line 57, in wrapped_view
return view_func(*args, **kwargs)
File “/opt/rockstor/eggs/Django-1.6.2-py2.7.egg/django/views/generic/base.py”, line 69, in view
return self.dispatch(request, *args, **kwargs)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/views.py”, line 452, in dispatch
response = self.handle_exception(exc)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/views.py”, line 449, in dispatch
response = handler(request, *args, **kwargs)
File “/opt/rockstor/eggs/Django-1.6.2-py2.7.egg/django/db/transaction.py”, line 339, in inner
return func(*args, **kwargs)
File “/opt/rockstor/src/rockstor/storageadmin/views/command.py”, line 309, in post
mount_share(nso, ‘%s%s’ % (settings.MNT_PT, s))
File “/opt/rockstor/src/rockstor/fs/btrfs.py”, line 204, in mount_share
mount_root(share.pool)
File “/opt/rockstor/src/rockstor/fs/btrfs.py”, line 132, in mount_root
if (re.match(’/dev/’, device) is None):
File “/usr/lib64/python2.7/re.py”, line 137, in match
return _compile(pattern, flags).match(string)
TypeError: expected string or buffer
[23/Aug/2015 03:20:51] ERROR [smart_manager.data_collector:351] Failed to update share state… exception: Internal Server Error

@weedv2 welcome to the Rockstor community!

This bug is fixed and is scheduled to roll out with 3.8-6 update within a couple of days. We’ll also release an updated ISO file with 3.8-6

Thanks for the post. I decided to try this out on a centos 7 system running 4.2.3-1.el7.elrepo.x86_64 and btrfs.
Ran
yum Install epel-release
yum install nginx
yum install rockstor

and ran initrock. All’s looking well execpt it gave a message about supported kernel … does not exist.
Looks like I can safely ignore that message…::smile:

[root@centos7 ~]# /opt/rockstor/bin/initrock
2015-10-13 09:44:56,519: Supported kernel(/boot/vmlinuz-4.2.2-1.el7.elrepo.x86_64) does not exist
2015-10-13 09:44:56,558: Creating openssl cert…
2015-10-13 09:44:56,847: Creating rockstor key…
2015-10-13 09:44:56,861: Singing cert with rockstor key…
2015-10-13 09:44:56,908: restarting nginx…
2015-10-13 09:44:57,385: Checking for flash and Running flash optimizations if appropriate.
2015-10-13 09:44:58,086: Updating the timezone from the system
2015-10-13 09:44:58,087: system timezone = America/New_York
2015-10-13 09:44:58,108: Changed timezone from America/Chicago to America/New_York
2015-10-13 09:44:58,111: Updating sshd_config
2015-10-13 09:44:58,125: updated sshd_config
2015-10-13 09:44:58,181: Please be patient. This script could take a few minutes
2015-10-13 09:44:58,348: initializing Postgresql…
2015-10-13 09:45:03,733: Done.
2015-10-13 09:45:04,883: Creating app databases…
2015-10-13 09:45:17,585: Done
2015-10-13 09:45:17,585: Initializing app databases…
2015-10-13 09:45:48,338: Done
2015-10-13 09:45:54,449: Postgresql restarted
2015-10-13 09:45:54,450: Running app database migrations…
2015-10-13 09:46:38,715: Done
2015-10-13 09:46:38,716: Running prepdb…
2015-10-13 09:46:40,246: Done
2015-10-13 09:46:40,246: updating rockstor systemd service
2015-10-13 09:46:40,458: Started rockstor service
2015-10-13 09:46:40,459: Started rockstor service
2015-10-13 09:46:40,459: Shutting down firewall…
2015-10-13 09:46:42,641: Done
2015-10-13 09:46:42,642: All set. Go to the web-ui now and start using Rockstor!

Will test it out and update if I have any issues. Glad I saw you post - saved me not having to reinstall the centos system.

How will it be to add rockstor to opensuse? They are a more BTRFS friendly distribution than Centos.

In addition they do have the opensuse tumbleweed rolling release, which will give Rockstor the possibility to follow the rapid BTRFS development with new kernel releases.

Just a suggestion, as I want to use Rockstor, but I also want to use opensuse tumbleweed due to rapid development of BTRFS.

OpenSUSE still exists? :smile:

Yes, they are under active development.

1 Like

Oh, i am interested in rockstor installation too. Is it possible?

Can you explain how opensuse is more btrfs friendly than centos? Does it support btrfs snapshot backed package/os updates out of the box? Please provide as much info as possible as it’s been a while since I played with suse.

Regarding kernel updates, we do offer almost latest stuff based on elrepo kernel. Does opensuse have a back porting scheme that only pulls latest btrfs bits to an older, more stable and supported kernel?

I do get regular feedback about porting Rockstor to another distribution. I think it’s nice to be distro independent, but I’m afraid working in that direction right now may not be wise, given that we have limited resources and we should focus on application support and not distro support. Distro swap and support right now will deviate our course quite a bit. As btrfs development becomes less active, we can revisit. Forks are welcome of course, but again, I rather have the community drive the higher level functionality in the near term and we can look into distro swapping, affinity or porting later.

Yes, you are right about Centos and porting to another distro.
The main Opensuse tumbleweed feature is a rolling release. You do not need upgrade system to next version.

Whichever distribution is most BTRFS friendly is hard to objectively state. I am just reading the policy of the distro, and opensuse has a “default BTRFS” policy for their filesystem. Thus my opinion of opensuse beeing a more BTRFS friendly distro. In addition I was as g2_ufo writes, mostly thinking of tumbleweed, as it is a rolling release, as this will give a most up-to-date BTRFS status. But this is not for me to decide. I see that it is possible to install Rockstor to Vanilla Centos, and thus it must be possible to install on opensuse, if one disregard the support.

I have tried to install rockstor on Fedora server 22 without result. Rockstor installation have been locked by elrepo kernel request.

Just want to chime in here with my 2cents. Me is not an OpenSuse friend but OpenSuse has build in the Snapper Tool (see Snapper.io), which seems to be fully supported by their package management. Furthermore, they are using Btrfs already as their root file-system to support their Package management as well as to redo changes made via those tools.

Most probably snapper could also be used with CentOs, but I am highly unsure.

I will add my 2 cents too: rockstor is a distribution, so it might be installable on centos or fedora or opensuse or slackware, but we really need to support it as a distribution so that it can grow fast and get new features quickly. Making it work on other platforms could be great but that’s for tomorrow.

1 Like

Absolutely right, just wanted to add my 2cents about the Opensuse discussion and where to look for “nice” features :wink:

My initial thought behind talking about opensuse, is that maybe Opensuse is a better platform to build Rockstor, since opensuse early started to use BTRFS as default filesystem, is close in windows integration and have a rolling release if that road is wanted.

but I have installed Rockstor as a default installation, and are now looking for my homeserver/mediaserver needs.

my $0.02