Nixpanic's Blog

Hurry up, only a few days left to do the 2015 Gluster Community Survey

The Gluster Community provides packages for Fedora, CentOS, Debian, Ubuntu, NetBSD and other distributions. All users are important to us, and we really like to hear how Gluster is (not?) working out for you, or what improvements are most wanted. It is easy to pass this information (anonymously) along through this years survey (it's a Google form).

If you would like to comment on the survey itself, please get in touch with Amye.


Stable releases continue, GlusterFS 3.5.4 is now available

GlusterFS 3.5 is the oldest stable release that is still getting updates. Yesterday GlusterFS 3.5.4 has been released, and the volunteering packagers have already provided RPM packages for different Fedora and EPEL versions. If you are running the 3.5 version on Fedora 20 or 21, you are encouraged to install the updates and provide karma.

Release Notes for GlusterFS 3.5.4

This is a bugfix release. The Release Notes for 3.5.0, 3.5.1, 3.5.2 and 3.5.3 contain a listing of all the new features that were added and bugs fixed in the GlusterFS 3.5 stable release.

Bugs Fixed:

  • 1092037: Issues reported by Cppcheck static analysis tool
  • 1101138: meta-data split-brain prevents entry/data self-heal of dir/file respectively
  • 1115197: Directory quota does not apply on it's sub-directories
  • 1159968: glusterfs.spec.in: deprecate *.logrotate files in dist-git in favor of the upstream logrotate files
  • 1160711: libgfapi: use versioned symbols in libgfapi.so for compatibility
  • 1161102: self heal info logs are filled up with messages reporting split-brain
  • 1162150: AFR gives EROFS when fop fails on all subvolumes when client-quorum is enabled
  • 1162226: bulk remove xattr should not fail if removexattr fails with ENOATTR/ENODATA
  • 1162230: quota xattrs are exposed in lookup and getxattr
  • 1162767: DHT: Rebalance- Rebalance process crash after remove-brick
  • 1166275: Directory fd leaks in index translator
  • 1168173: Regression tests fail in quota-anon-fs-nfs.t
  • 1173515: [HC] - mount.glusterfs fails to check return of mount command.
  • 1174250: Glusterfs outputs a lot of warnings and errors when quota is enabled
  • 1177339: entry self-heal in 3.5 and 3.6 are not compatible
  • 1177928: Directories not visible anymore after add-brick, new brick dirs not part of old bricks
  • 1184528: Some newly created folders have root ownership although created by unprivileged user
  • 1186121: tar on a gluster directory gives message "file changed as we read it" even though no updates to file in progress
  • 1190633: self-heal-algorithm with option "full" doesn't heal sparse files correctly
  • 1191006: Building argp-standalone breaks nightly builds on Fedora Rawhide
  • 1192832: log files get flooded when removexattr() can't find a specified key or value
  • 1200764: [AFR] Core dump and crash observed during disk replacement case
  • 1202675: Perf: readdirp in replicated volumes causes performance degrade
  • 1211841: glusterfs-api.pc versioning breaks QEMU
  • 1222150: readdirp return 64bits inodes even if enable-ino32 is set

Known Issues:

  • The following configuration changes are necessary for 'qemu' and 'samba vfs plugin' integration with libgfapi to work seamlessly:
    1. gluster volume set <volname> server.allow-insecure on
    2. restarting the volume is necessary
      gluster volume stop <volname>
      gluster volume start <volname>
    3. Edit /etc/glusterfs/glusterd.vol to contain this line:
      option rpc-auth-allow-insecure on
    4. restarting glusterd is necessary
      service glusterd restart
    More details are also documented in the Gluster Wiki on the Libgfapi with qemu libvirt page.
  • For Block Device translator based volumes open-behind translator at the client side needs to be disabled.
    gluster volume set <volname> performance.open-behind disabled
  • libgfapi clients calling glfs_fini before a successful glfs_init will cause the client to hang as reported here. The workaround is NOT to call glfs_fini for error cases encountered before a successful glfs_init. This is being tracked in Bug 1134050 for glusterfs-3.5 and Bug 1093594 for mainline.
  • If the /var/run/gluster directory does not exist enabling quota will likely fail (Bug 1117888).

Installing GlusterFS 3.4.x, 3.5.x or 3.6.0 on RHEL or CentOS 6.6

With the release of RHEL-6.6 and CentOS-6.6, there are now glusterfs packages in the standard channels/repositories. Unfortunately, these are only the client-side packages (like glusterfs-fuse and glusterfs-api). Users that want to run a Gluster Server on a current RHEL or CentOS now have difficulties installing any of todays current version of the Gluster Community packages.

The most prominent issue is that the glusterfs package from RHEL has a version of 3.6.0.28, and that is higher than the last week released version of 3.6.0. RHEL is shipping a pre-release that was created while the Gluster Community was still developing 3.6. An unfortunate packaging decision added a .28 to the version, where most other pre-releases would fall-back to a (rpm-)version like 3.6.0-0.1.something.bla.el6. The difference might look minor, but the result is a major disruption in the much anticipated 3.6 community release.


Sync Google Contacts with Thunderbird

Google Contacts is an Add-On for Thunderbird which creates an additional address book with your Google contacts.

Great tool!

CentOS-5 and file sharing over bluetooth

Dag Wieers wrote a very nice and simple blogpost called "OBEX for dummies. This post helped me getting bluetooth file-sharing work in less than five minutes. Thanks Dag! Tried to post a comment on the blog, however that failed for some reason...)

A Fujitsu Siemens webcam on Linux

Today I got a webcam (loaned from work) working under CentOS. It's a nameless model from Fujitsu Siemens Computers (USB Vendor/Product 0c45:613b).

The sn9c102-driver


I have packaged the suitable driver from Luca Risolia. There also seems to be a binary-only driver which is only available for Ubuntu 7.04. This driver should be better, however it can't be used for free on other Linux distributions.

Downloaded the .src.rpm for the driver from my homepage (direct download).

GTK+ UVC Viewer


Having only a driver is of no use. There should also be a easy to use viewer software. I was unable to find a packaged version for guvcview, so created the RPM myself. The .src.rpm is also available from my site.

No Skype :(


Unfortunately Skype 2.0.0.72 does not support the MJPEG-format delivered by this camera. Looking for possible solutions, I found the ov51x-jpeg-driver and gstfakevideo. Tried both and got the same unsuccessful result.

gstfakevideo seems most promising as it does everything in user-space. It is mainly a library which gets loaded before any others libraries (see LD_PRELOAD in man ld.so). This makes it possible to change the behavior of any function-call. In this case Skype uses libgstreamer and the API can be changed on the fly. But as it doesn't work and the camera is not my personal posession, I won't look into this much more.

Developing with Google App Engine on CentOS-5

Unfortunately CentOS-5 does not have python-2.4 yet. When using wsgiref.handlers.CGIHandler for handling get() and/or post() requests the following ImportError occurs:


ImportError: No module named wsgiref.handlers


This can be solved by installing the
Python Extension wsgiref. I've created an SRPM which can be rebuilt quite easily.

After the installation of WSGI, the google_appengine/dev_appserver.py still does not find the library. This can be solved by configuring the wsgire as a third party module.

cd /path/to/my/google/app
ln -s /usr/lib/python-2.4/site-packages/wsgiref


Now it should be possible to run the Google App:

google_appengine/dev_appserver.py /path/to/my/google/app



More links:
* Google App Engine
* Application Gallery

NSPluginWrapper in CentOS-5.2 (x86_64)

This is an update for an older post by me: Installing Flash on CentOS-5.x86_64

CentOS-5.2 already includes NSPluginWrapper. Yust install it as usual with:

yum -y install nspluginwrapper

Starting SafeBoot with GRUB

Installation of SafeBoot


SafeBoot can be installed over Tivoli. After installation, you need to authenticate on every boot and Windows will be started.
Only the partitions used by Windows will be encrypted, the Linux partitions are not affected.

Boot from a Rescue System


Booted my CentOS x86_64 with the installation DVD, giving on the boot-prompt linux rescue. This rescue system automatically detects my /-filesystem and all used partitions. The dialogs explain how to change to the installed system:
chroot /mnt/sysimage
Now you are prepared to backup SafeBoot and setup GRUB as default bootloader.
Note:
If your Linux is installed with a x86_64 version, you'll need a x86_64 rescue system.
Note:
It is adviced to use a CD or DVD for booting. A USB-Stick (which is emulated like a harddrive) could give troubles installing GRUB.

Backup the SafeBoot MBR


dd if=/dev/sda of=/boot/safeboot.mbr bs=512 count=1
The master-boot-record will be saved in the file called /boot/safeboot.mbr.

Install GRUB on the MBR


/sbin/grub-install /dev/sda
This overwrites the MBR with GRUB. By default GRUB will boot (no authentication needed).

Starting SafeBoot from GRUB


Edit /boot/grub/grub.conf (on Red Hat/CentOS) or /boot/menu.lst on other distributions. Add the next entry too the file:

title Microsoft Windows XP Professional
rootnoverify (hd0,0)
makeactive
chainloader (hd0,5)/safeboot.mbr

Here (hd0,0) is the Windows partition and /safeboot.mbr is the backup of the SafeBoot-MBR. In this case it is missing the /boot directory, as /boot is a seperate partition ((hd0,5) which is /dev/sda6).

Installing Flash on CentOS-5.x86_64

With some help from a post in the CentOS-wiki I was able to install the 32-bit version of Adobe's Flash-Plugin on a 64-bit Firefox.

Using the nspluginwrapper RPMs and the flash-plugin from RPMforge.

This is what I have done:

  • install nspluginwrapper (viewer)

  • install nspluginwrapper (plugin)

  • install the flash-plugin: yum -y install flash-plugin or manually from the RPM

  • run the following command as root: nspluginwrapper --install /usr/lib/mozilla/plugins/libflashplayer.so

  • check the installation: in the firefox addressbar about:plugins or visit a site with flash ;)