Gluster 3.4.X is a turd

If you’re on 3.3 or older, skip 3.4.X or upgrade through it, it is full of memory leaks and bugs, 3.5.1+ is _considerably_ more stable. 3.4.4-1 has a massive memory leak that will eventually consume all available memory and crash. Avoid at all costs.

NEC-i SV8100 PBX another SIP / Asterisk Integration quirk

I’ve posted a few of these just for mental storage as well as making a public point that should be easily searched for when you’re racking your brain on why something doesn’t interoperate properly.

Here’s the latest;

NEC’s 8000 series PBXs that “support” SIP will fail to respond to Asterisk SIP/200 OKs after they place a INVITE if the asterisk UserAgent string contains at least parenthesis or dashes.

E.g:

sip.conf / [general]

useragent=asterisk-(11.7.0)

Will cause the NEC to fail to respond correctly to SIP/200

instead use something like:

useragent=11.7.0

Zoneminder – CentOS 6 – Binary / SRPM

There seems to be a void of FFMPEG/libav enabled normal RPMs for CentOS 6 and I got sick of installing DVRs from source, there are plenty for Fedora but Fedora is not a server/enterprise OS. I’ve updated/rebuilt a combination of some existing SPEC files for other distributions to work for CentOS, enjoy.

zoneminder-1.25.0-11.el6.x86_64.rpm
zoneminder-1.25.0-11.el6.src.rpm

LVM Add, Extend and Resize the FS (ext4) all online

Lets say we have a volume group called vg_hostname, in that volume group there are 3 logical volumes:

[root@hostname ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lv_home vg_hostname -wi-ao-- 60.00g
lv_root vg_hostname -wi-ao-- 50.00g
lv_swap vg_hostname -wi-ao-- 1.97g

lv_home is mounted as /home, is 60GB and, is full. We need to add more space to it but what if the volume group is full?

[root@hostname ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_mail2 2 3 0 wz--n- 120.00g 0

Luckily LVM allows us to add another physical volume to the volume group to get the space we need. So lets add a new 80GB disk, lets assume that this is /dev/vdb

First, we need to partition the device and set the partition as type LVM:
[root@hostname ~]# fdisk /dev/vdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x496ca2c7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): p

Disk /dev/vdb: 85.9 GB, 85899345920 bytes
16 heads, 63 sectors/track, 166440 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x496ca2c7

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-166440, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-166440, default 166440):
Using default value 166440

Command (m for help): p

Disk /dev/vdb: 85.9 GB, 85899345920 bytes
16 heads, 63 sectors/track, 166440 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x496ca2c7

Device Boot Start End Blocks Id System
/dev/vdb1 1 166440 83885728+ 83 Linux

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): L

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/vdb: 85.9 GB, 85899345920 bytes 16 heads, 63 sectors/track, 166440 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x496ca2c7 Device Boot Start End Blocks Id System /dev/vdb1 1 166440 83885728+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.

Now we have a LVM partition as /dev/vdb1, next turn it into a usable physical volume:

[root@hostname ~]# pvcreate /dev/vdb1
Writing physical volume data to disk "/dev/vdb1"
Physical volume "/dev/vdb1" successfully created

Adding the new physical volume to our vg_hostname volume group is quite easy:
[root@hostname ~]# vgextend vg_mail2 /dev/vdb1

Now we have an extra 80GB available in our volume group!
[root@hostname ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg_mail2 2 3 0 wz--n- 199.50g 80.00g

Next we need to extend our vg_home logical volume to get that 80GB usable for that "partition" and since we want to use all available space we set the `-l +100%FREE1 flag/value to expand the logical volume to all available free space:

[root@hostname ~]# lvextend -l +100%FREE /dev/vg_hostname/lv_home
Extending logical volume lv_home to 147.54 GiB
Logical volume lv_home successfully resized

Now our underlying device is 147.54GiB but our file system (ext4) is still the original 60GB, using resize2fs we can extend that ext4 filesystem to consume the new space:

[root@hostname ~]# resize2fs /dev/vg_hostname/lv_home
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg_hostname/lv_home to 38675456 (4k) blocks.
The filesystem on /dev/vg_hostname/lv_home is now 38675456 blocks long.

And now, we've added 80GB to our /home mount without taking the system or mount point offline.

iSCSI TGT – Updating target ACLs

Sometimes when updating the ACL for a target in targets.conf and performing a tgtd reload the ACL is not updated, this is very common and require manually updating the ACL.

You can check the ACLs via the show command for tgt-admin:

[root@san2head2 ~]# tgt-admin --show

ACL information:
192.168.1.2
192.168.1.3

To update that list, say we want to add 192.168.1.4, we’ve updated targets.conf and done a tgtd reload but the ACL has not updated perform the following:


tgtadm -lld iscsi --op bind --mode target --tid 1 -I 192.168.1.4

Where tid = the target ID which can be ascertained from the show commmand,

Now if we look at the ACL via the show command we see the new IP added:

[root@san2head2 ~]# tgt-admin --show

ACL information:
192.168.1.2
192.168.1.3
192.168.1.4

RHEV – Storage domain not visible to one or more hosts.

Fun fact, if you ever have a NFS share detach from a single RHEV compute node then the easiest way to get it to link back in is to:

Open up RHEVM, navigate to the datacenter where the issue is occurring and place the storage domain into maintenance mode, when successful reactivate the storage domain and it should re-attach. This happened to us when we got the error:

2012-10-26 21:06:43,899 WARN [org.ovirt.engine.core.vdsbroker.irsbroker.IrsBrokerCommand] (QuartzScheduler_Worker-56) Storage domain nfs002 is not visible to one or more hosts. Since the domains type is ImportExport, hosts status will not be changed to non-operational

Once we did the above procedure the error went away and the node with the trouble cleared