Glusterfs on CentOS 7 notes

Repos and packages to install.

sudo yum -y --enablerepo=extras install centos-release-gluster ;
sudo yum -y install glusterfs-server

Or just the client packages.

sudo yum -y --enablerepo=extras install centos-release-gluster ;
sudo yum -y install glusterfs-fuse glusterfs

If you encounter this error in the glusterfs log, nominally /var/log/glusterfs/$MNTNAME.log, it means the client version does not match the
server version.

[2019-11-08 21:26:53.707738] I [MSGID: 100030] [glusterfsd.c:2646:main] 0-/usr/sbin/glusterfs: Started running /usr/sbin/glusterfs version 3.12.2 (args: /usr/sbin/glusterfs --volfile-server=c7-03a --volfile-id=/gv1 /mnt/gv1)
[2019-11-08 21:26:53.814029] W [MSGID: 101002] [options.c:995:xl_opt_validate] 0-glusterfs: option 'address-family' is deprecated, preferred is 'transport.address-family', continuing with correction
[2019-11-08 21:26:53.830793] I [MSGID: 101190] [event-epoll.c:676:event_dispatch_epoll_worker] 0-epoll: Started thread with index 0
[2019-11-08 21:26:53.830902] I [MSGID: 101190] [event-epoll.c:676:event_dispatch_epoll_worker] 0-epoll: Started thread with index 1
[2019-11-08 21:26:53.890326] W [MSGID: 101095] [xlator.c:213:xlator_dynload] 0-xlator: /usr/lib64/glusterfs/3.12.2/xlator/features/utime.so: cannot open shared object file: No such file or directory
[2019-11-08 21:26:53.890369] E [MSGID: 101002] [graph.y:213:volume_type] 0-parser: Volume 'gv1-utime', line 61: type 'features/utime' is not valid or not found on this machine
[2019-11-08 21:26:53.890415] E [MSGID: 101019] [graph.y:321:volume_end] 0-parser: "type" not specified for volume gv1-utime
[2019-11-08 21:26:53.899127] E [MSGID: 100026] [glusterfsd.c:2473:glusterfs_process_volfp] 0-: failed to construct the graph
[2019-11-08 21:26:53.899488] W [glusterfsd.c:1462:cleanup_and_exit] (-->/usr/sbin/glusterfs(mgmt_getspec_cbk+0x532) [0x55c73804bb02] -->/usr/sbin/glusterfs(glusterfs_process_volfp+0x193) [0x55c738045633] -->/usr/sbin/glusterfs(cleanup_and_exit+0x6b) [0x55c738044b2b] ) 0-: received signum (-1), shutting down
[2019-11-08 21:26:53.899536] I [fuse-bridge.c:6611:fini] 0-fuse: Unmounting '/mnt/gv1'.
[2019-11-08 21:26:53.908659] I [fuse-bridge.c:6616:fini] 0-fuse: Closing fuse connection to '/mnt/gv1'.
[2019-11-08 21:26:53.908857] W [glusterfsd.c:1462:cleanup_and_exit] (-->/lib64/libpthread.so.0(+0x7e65) [0x7f9f96227e65] -->/usr/sbin/glusterfs(glusterfs_sigwaiter+0xe5) [0x55c738044cc5] -->/usr/sbin/glusterfs(cleanup_and_exit+0x6b) [0x55c738044b2b] ) 0-: received signum (15), shutting down

To fix, use the same client version.

Powershell notes

sum attribute of objects in array

( $foo.disksizerequired | Measure-Object -Sum ).Sum /1024/1024
1206181

Save down user photo from Active Directory

https://devblogs.microsoft.com/scripting/weekend-scripter-exporting-and-importing-photos-in-active-directory/
$path = "E:\test\output1.jpg"
$user = get-aduser "bgstack15" -properties thumbnailphoto
[System.Io.File]::WriteAllBytes($path,$user.thumbnailphoto)

Display string of asterisks for a password. Obscure a password for display.

$output=""; For ($c=0; $c -lt $pass.length; $c++){$output+="*"}; Write-Host $output

Function uses -Verbose flag (from powershell – How to properly use the -verbose and -debug parameters in a custom cmdlet – Stack Overflow

function DoStuff {
    [CmdletBinding()]
    param()

    process {
        if ($PSBoundParameters['Verbose']) {
            # Do verbose stuff
        }

        New-Item Test -Type Directory -Verbose:($PSBoundParameters['Verbose'] -eq $true)
    }
}
DoStuff -Verbose

Also, this example from How to write a PowerShell function to use Confirm, Verbose and WhatIf | SQL DBA with A Beard

function Set-FileContent {
    [cmdletbinding(SupportsShouldProcess)]
    Param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Content,
        [Parameter(Mandatory = $true)]
        [ValidateScript( {Test-Path $_ })]
        [string]$File
    )
    if ($PSCmdlet.ShouldProcess("$File" , "Adding $Content to ")) {
        Set-Content -Path $File -Value $Content
    }
}

Timestamps

# Slightly more readable: 2020-01-15T17:07:59Z
(Get-Date).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
#Also just fine
(Get-Date -Format FileDateTimeUniversal)

Creating a DateTime object with a specific UTC DateTime in PowerShell – Stack Overflow

Import CSV to dictionary

With column headings of ID and Data:

Import-Csv $filePath | % { $HashTable[$_.ID] = $_.Data }

Powershell CSV with headers to hashtable – Stack Overflow

Notes for Yum repositories for CentOS and Fedora

This is my scratch page for third-party centos and fedora repositories that are useful. I’ve used these at least once in my personal experience. There’s obviously a lot more, and they’re only an internet search away.

EPEL
SCL
city-fan
remi
rpmfusion
negativo17
ius
nuxref

Lists of additional ones:
https://rpmfusion.org/FedoraThirdPartyRepos

Sites for “rpm find”:
https://www.rpmfind.net/
http://rpm.pbone.net/

Voobly notes

Voobly on Wine in Linux

For some reason, one of my voobly installations in Wine on Linux (devuan specifically) runs like a dog. While the system is indeed really old, Voobly was running smoother on it before the OS reinstall.

After an strace, I learned it kept looking for a tzres.dll in C:\Program Files\Voobly\, and there wasn’t one. So I copied it in from the system32 directory and re-ran Voobly. It seems to operate a little better now, although it’s still not exactly a smooth experience.

cp -p ~/.wine/drive_c/windows/system32/tzres.dll ~/.wine/drive_c/Program\ Files/Voobly/

Kerberos notes and sssd Internal credentials cache error

If sssd gives you errors about unable to connect, it’s probably the host password (keytab) is out of date with what AD has. You have to reset the host account in AD, or even delete the computer account and rejoin the domain.

kdestroy -A
kinit domainadmin
msktutil -f -s host
msktutil -u -s host
kinit -k "$( hostname -s | tr '[[:lower:]]' '[[:upper:]]' )\$@MSAD.EXAMPLE.COM"
klist -kt

The kvno value in the output of klist -kt should match the attribute “msDS-KeyVersionNumber” of the server object in AD.

Error can include:

(Thu Aug  9 15:28:57 2018) [[sssd[krb5_child[3177]]]] [create_ccache] (0x0020): 1009: [-1765328188][Internal credentials cache error]
(Thu Aug  9 15:28:57 2018) [[sssd[krb5_child[3177]]]] [map_krb5_error] (0x0020): 1657: [-1765328188][Internal credentials cache error]
(Thu Aug  9 15:29:22 2018) [[sssd[krb5_child[3333]]]] [privileged_krb5_setup] (0x0080): Cannot open the PAC responder socket
(Thu Aug  9 15:29:22 2018) [[sssd[krb5_child[3333]]]] [sss_send_pac] (0x0040): sss_pac_make_request failed [-1][2].
(Thu Aug  9 15:29:22 2018) [[sssd[krb5_child[3333]]]] [validate_tgt] (0x0040): sss_send_pac failed, group membership for user with principal [bgstack15\@MSAD.EXAMPLE.COM@MSAD.EXAMPLE.COM] might not be correct.

Notes for git log

git log --graph --oneline --all
* 5240127 cladu.sh: fix the tluid=tduid check syntax
* 9a4afe3 fix comments about branch in metadata of various files
*   93893b0 Merge remote-tracking branch 'origin/master' into work1
|\  
* \   7ba8d7e Merge branch 'master' of https://gitlab.com/bgstack15/bgscripts into work1
|\ \  
* | | 476f863 add cladu and bump to 1.3-4
* | | abbb687 userinfo: add chage
* | | 3c87f21 fix work1 branch again
* | | b9caef9 update %files core in spec

Git log output