Tag Archives: linux

Valuable News – 2019/01/18

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here so someone else can

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

Installing and Updating FreeBSD 11.0 on Raspberry Pi.
https://solence.de/2017/03/15/installing-and-updating-freebsd-11-0-release-on-a-raspberry-pi/

ZFS on Linux Runs into Snag with Linux 5.0.
https://www.phoronix.com/scan.php?page=news_item&px=ZFS-On-Linux-5.0-Problem

Create your own video streaming server with Linux or FreeBSD.
https://opensource.com/article/19/1/basic-live-video-streaming-server

hexyl – command-line hex viewer for terminal.
Colors different categories of bytes (NULL/printable ASCII/ASCII whitespace/other ASCII/non-ASCII).
https://github.com/sharkdp/hexyl

How Vim Shaped My Writing.
https://gilesbowkett.blogspot.com/2016/10/how-vim-shaped-my-writing.html

Debugging Rust with VSCode on FreeBSD.
https://venshare.com/debugging-rust-with-vscode-on-freebsd/

In Other BSDs for 2019/01/12.
https://www.dragonflydigest.com/2019/01/12/22379.html

How OpenBSD is secure compared to other operating systems?
https://www.reddit.com/r/openbsd/comments/af1s00/how_openbsd_is_secure_compared_to_other_operating/

FreeBSD adds bluetooth-config script to simplify setting up Bluetooth connections.
https://svnweb.freebsd.org/changeset/base/342945

The good and the bad of Linux’s NetworkManager.
https://utcc.utoronto.ca/~cks/space/blog/linux/NetworkManagerGoodBad

Linux network-scripts being deprecated.
https://utcc.utoronto.ca/~cks/space/blog/linux/NetworkScriptsAndPPPoE

The CADT Model – mostly used in Linux environments.
https://www.jwz.org/doc/cadt.html

We are now closer to the Y2038 bug than the Y2K bug.
https://www.jwz.org/blog/2019/01/we-are-now-closer-to-the-y2038-bug-than-the-y2k-bug/

FreeBSD adds support for Clang Coverage Sanitizer in kernel (KCOV).
https://svnweb.freebsd.org/base?view=revision&revision=342962

Powersaving with DragonFly BSD Laptop.
https://www.dragonflybsd.org/docs/user/Powersave/?updated

Difference Between ZFS Scrub and Resilver.
https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSResilversVsScrubs

Risk that comes from ZFS on Linux not being GPL Compatible.
Actually its GPL that is not compatible with CDDL (ZFS license). Not the other way around.
https://utcc.utoronto.ca/~cks/space/blog/linux/ZFSNonGPLRisk

FreeBSD takes vmm(4) towards multicore Bhyve AMD support.
https://svnweb.freebsd.org/base?view=revision&revision=343075

Ansible plugin for remotely provisioning FreeBSD Jails separately from their Jail host.
https://github.com/austinhyde/ansible-sshjail

Update Intel Microcode on FreeBSD.
https://www.thomas-krenn.com/en/wiki/Update_Intel_Microcode_on_FreeBSD

Building spotifyd on NetBSD.
https://atomicules.co.uk/2019/01/17/Building-Spotifyd-on-NetBSD.html

Building my FreeBSD-based home router.
https://kamila.is/learning/building-my-home-router/

HardenedBSD 1100056.12 Available.
https://hardenedbsd.org/article/op/2019-01-18/stable-release-hardenedbsd-stable-11-stable-v110005612

BSD Now 281 – EPYC Server Battle.
https://www.jupiterbroadcasting.com/128846/epyc-server-battle-bsd-now-281/

OpenRSYNC – clean-room implementation of rsync with a BSD (ISC) license.
https://github.com/kristapsdz/openrsync

FreeBSD and UEFI Boot.
https://blog.tyk.nu/blog/freebsd-and-uefi-boot/

Synaptics Touchpad on FreeBSD.
https://wiki.freebsd.org/SynapticsTouchpad

OpenBSD Content Filtering Proxy HOWTO in One Tweet ๐Ÿ™‚
https://twitter.com/ogmaconnect1/status/983813448504094721

Aphelia – minimalist window manager.
https://github.com/vardy/aphelia

The tinywm.c is a window manager in 50 lines of C code.
https://github.com/mackstann/tinywm/blob/master/tinywm.c

OpenDoas: Portable Version of OpenBSD doas Command.
https://git.duncano.de/opendoas/about/

OpenBSD Packages Statistics.
https://pkgstat-openbsd.perso.pw/

The Art of Unix Programming by Eric Steven Raymond reformatted by Martin Tournoij.
https://arp242.net/the-art-of-unix-programming/

Reproducible NetBSD!
https://tests.reproducible-builds.org/netbsd/netbsd.html

FreeBSD PR (Problem Reports) Stats.
https://people.freebsd.org/~miwi/gnats/

Using cloud-init with SmartOS.
https://shaner.life/using-cloud-init-with-smartos/

Shawn Webb (co-creator of HardenedBSD) started new project to rewrite FreeBSD bhyve in Rust.
https://twitter.com/lattera/status/1085711849469952000

Hardware

Flashing my Lenovo x230 with Coreboot.
https://www.chucknemeth.com/flash-lenovo-x230-coreboot/

POWER9 Scales Up To 1.2 TB/s of I/O.
https://fuse.wikichip.org/news/1653/power9-scales-up-to-1-2-tb-s-of-i-o-targets-nvlink-3-opencapi-memory-for-2019/

V-Raptor is 24-Core ARM Server Based on SocioNext SC2A11 SoC.
https://www.cnx-software.com/2019/01/08/v-raptor-24-core-arm-server-socionext-sc2a11/

AMD Opteron X3421 Benchmarks and Review Low Cost Atom Competitor.
https://www.servethehome.com/amd-opteron-x3421-benchmarks-and-review-a-low-cost-atom-competitor/

Computer for CyberSecurity BSD-OS (SecBSD).
https://www.gofundme.com/computer-for-cybersecurity-bsdos

Life

Australia Becomes First Western Nation to Ban Secure Encryption.
https://www.extremetech.com/internet/281991-australia-becomes-first-western-nation-to-ban-secure-encryption

Facebook’s 10 Year Challenge is Just a Harmless Meme Right?
https://www.wired.com/story/facebook-10-year-meme-challenge/

Other

ลรณdลบ Revitalised – Poland’s Third Largest City is Under Transformation.
https://uml.lodz.pl/files/public/dla_biznesu/investlodz/fdi-lodz-revitalised.pdf

Why Microsoft Word must Die.
http://www.antipope.org/charlie/blog-static/2013/10/why-microsoft-word-must-die.html

EOF

 

Advertisements

Valuable News – 2019/01/11

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here so someone else can

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

In Other BSDs for 2019/01/05.
https://www.dragonflydigest.com/2019/01/05/22307.html

Devin Teske made sysconf(8) to safely edit system config files on FreeBSD.
Another great tool after sysrc(8) that allows safe edit of system rc files.
https://github.com/freebsdfrau/FrauBSD/tree/master/sysconf

New PEFS 2018.12.29 Release.
http://pefs.io/blog/2018/12/release-20181229/?fbclid=IwAR2fPxLnl18rfAVcQ6OmMR7FhsRGuorHq84xYhQ-cnO2m7_7Z2aSFB65PLI

Revive Cisco IDS Into Capable OpenBSD Computer.
https://komlositech.wordpress.com/2018/12/30/revive-a-cisco-ids-into-a-capable-openbsd-firewall/

How I did start using FreeBSD.
https://www.banym.de/how-i-did-start-using-freebsd.html

MacBook Pro 9.2 Gets FreeBSD Support.
https://twitter.com/FreeBSDHelp/status/1081395210259595265

New HardenedBSD 13.0 Image for RPI3.
https://hardenedbsd.org/~shawn/rpi3/2019-01-05/HardenedBSD-aarch64-13.0-HARDENEDBSD-fa32a12f857-RaspberryPi3.img.xz
https://twitter.com/lattera/status/1081919725611950082

FreeBSD gives sh(1) proper default prompt instead of just “$“.
https://svnweb.freebsd.org/base?view=revision&revision=342812

More FreeBSD RFC Sendmail Deprecation Discussion.
https://lists.freebsd.org/pipermail/freebsd-arch/2017-December/018712.html

DistroWatch – Feature Story – FreeBSD 12.0-RELEASE Review.
“(…) this release feels like a polished and improved incremental step forward.”
https://distrowatch.com/weekly.php?issue=20190107#freebsd

DistroWatch – Musings on Distros After Prolonged Use (2019).
“FreeBSD is probably my favourite server-oriented operating system, mostly because it never surprises me.
FreeBSD tends to do what you tell it to do, and just do what you tell it to do.”

https://distrowatch.com/weekly.php?issue=20190107#lookback

New ZFS on FreeBSD Implementation Can Now Be Tested with TrueOS.
https://www.phoronix.com/scan.php?page=news_item&px=ZFS-On-Linux-Test-TrueOS-Spin
https://pkg.trueos.org/iso/snapshot-zol/

OmniOS Community Edition r151028j/r151026aj/r151022ch.
https://omniosce.org/article/release-028j-026aj-022ch

FreeBSD Foundation – December 2018 – Development Projects Update.
https://www.freebsdfoundation.org/blog/december-2018-development-projects-update/

Zackup – Backup to ZFS – Inspired by BackupPC.
https://github.com/digineo/zackup

POSIX Shell and Utilities.
https://shellhaters.org/

OPNsense 18.7.10 Released.
https://forum.opnsense.org/index.php?topic=10903.0

A wc clone written in Rust.
https://crates.io/crates/cw

FreeBSD as my Network Storage Server (Part 1).
https://www.jasonvanpatten.com/2015/11/26/freebsd-as-my-network-storage-server/

FreeBSD as my Network Storage Server (Part 2).
https://www.jasonvanpatten.com/2015/11/26/freebsd-as-my-network-storage-server-part-2/

Knightmare: DevOps Cautionary Tale.
Knightmare: A DevOps Cautionary Tale

IOCCC: Best of Show.
https://www.ioccc.org/2018/mills/hint.html

Quick Naive Benchmarks on AMD A8-5550M APU on FreeBSD (with and without AESNI).
https://lists.freebsd.org/pipermail/freebsd-current/2018-December/072466.html

Goal of GameBSD is to provide a place for students to learn about programming and technology.
https://gamebsd.com/index.html

AIX 7.2 running on AARCH64 (ARM) Pinebook with QEMU.
https://twitter.com/astr0baby/status/1082811124897251328

OpenBSD Router.
http://www.homeandofficeit.com/Main/OpenBSDRouter

New console font Spleen made default on OpenBSD.
https://undeadly.org/cgi?action=article;sid=20190110064857

Interactive VIM Tutorial.
https://openvim.com/

ZFS on Linux does not work on Linux 5.0 kernels.
https://marc.info/?l=linux-kernel&m=154714516832389

Hardware

AMD Ryzen Mobile 3000-Series Launched – 2nd Gen Mobile at 15W-35Wand Chromebooks.
https://www.anandtech.com/show/13771/amd-ces-2019-ryzen-mobile-3000-series-launched

AMD launches two new A-series 6W chips for Chromebooks.
https://liliputing.com/2019/01/amd-launches-two-new-a-series-chips-for-chromebooks.html

AMD Powered Acer Chromebook 315 Announced.
https://www.anandtech.com/show/13783/acer-at-ces-amd-powered-acer-chromebook-315-announced

Huawei claims its Kunpeng 920 ARM based processor is the industry’s fastest.
64 cores clocked at 2.6GHz with 8-channel DDR4 memory.
Also two 100G RoCE ports and support for PCIe Gen4 and CCIX.
https://venturebeat.com/2019/01/06/huawei-claims-its-kunpeng-920-arm-based-risc-processor-is-the-industrys-fastest/

Huawei Unveils Industry’s Highest-Performance ARM-based CPU.
https://www.huawei.com/en/press-events/news/2019/1/huawei-unveils-highest-performance-arm-based-cpu

Samsung Plans 3nm Gate-All-Around FETs in 2021.
https://www.eetimes.com/document.asp?doc_id=1333318

Lenovo ThinkPad X1 Carbon 7th Gen Gets Thinner.
https://www.anandtech.com/show/13833/lenovo-at-ces-2019-7th-gen-thinkpad-x1-carbon-gets-thinner

Life

Amazon sent 1700 audio recordings of Alexa user to a stranger.
https://www.hackread.com/amazon-sent-audio-recordings-of-alexa-user-to-stranger/?fbclid=IwAR0B9CiTTpOxDClsNmfrlmRxyzP1nHzMYbCk2e8aAI8EgNkgKvyImJXGd-A

Before you can be with others, first learn to be alone.
https://aeon.co/ideas/before-you-can-be-with-others-first-learn-to-be-alone

10 Harmful Effects of Religion.
http://sarahrocksdale.wixsite.com/blog/single-post/2019/01/08/10-Harmful-Effects-of-Religion

System Down: systemd-journald Exploit.
https://www.qualys.com/2019/01/09/system-down/system-down.txt

Other

The State Of Software Security In 2019.
https://noncombatant.org/2019/01/06/state-of-security-2019/

The Developer Experience Bait-and-Switch.
https://infrequently.org/2018/09/the-developer-experience-bait-and-switch/

LinkedIn violates privacy and detects usage of browser extensions.
https://github.com/dandrews/nefarious-linkedin

Classic Doom gets 3D/HD remaster – courtesy of the fans.
https://www.pcgamesn.com/doom/doom-remaster

RPG Codex Review: ATOM RPG (Remix of Fallout Story).
https://rpgcodex.net/content.php?id=11080

Facebook is the new crapware.
https://techcrunch.com/2019/01/09/facebook-is-the-new-crapware/

EOF

GlusterFS Cluster on FreeBSD with Ansible and GNU Parallel

Today I would like to present an article about setting up GlusterFS cluster on a FreeBSD system with Ansible and GNU Parallel tools.

gluster-logo.png

To cite Wikipedia “GlusterFS is a scale-out network-attached storage file system. It has found applications including cloud computing, streaming media services, and content delivery networks.” The GlusterFS page describes it similarly “Gluster is a scalable, distributed file system that aggregates disk storage resources from multiple servers into a single global namespace.”

Here are its advantages:

  • Scales to several petabytes.
  • Handles thousands of clients.
  • POSIX compatible.
  • Uses commodity hardware.
  • Can use any ondisk filesystem that supports extended attributes.
  • Accessible using industry standard protocols like NFS and SMB.
  • Provides replication/quotas/geo-replication/snapshots/bitrot detection.
  • Allows optimization for different workloads.
  • Open Source.

Lab Setup

It will be entirely VirtualBox based and it will consist of 6 hosts. To not create 6 same FreeBSD installations I used 12.0-RELEASE virtual machine image available from the FreeBSD Project directly:

There are several formats available – qcow2/raw/vhd/vmdk – but as I will be using VirtualBox I used the VMDK one.

I will use different prompts depending on where the command is executed to make the article more readable. Also then there is ‘%‘ at the prompt then a regular user is needed and if there is ‘#‘ at the prompt then a superuser is needed.

gluster1 #    // command run on the gluster1 node
gluster* #    // command run on all gluster nodes
client #      // command run on gluster client
vbhost %      // command run on the VirtualBox host

Here is the list of the machines for the GlusterFS cluster:

10.0.10.11 gluster1
10.0.10.12 gluster2
10.0.10.13 gluster3
10.0.10.14 gluster4
10.0.10.15 gluster5
10.0.10.16 gluster6

Each VirtualBox virtual machine for FreeBSD is the default one (as suggested in the VirtualBox wizard) with 512 MB RAM and NAT Network as shown on the image below.

virtualbox-freebsd-gluster-host.jpg

Here is the configuration of the NAT Network on VirtualBox.

virtualbox-nat-network.jpg

The cloned/copied FreeBSD-12.0-RELEASE-amd64.vmdk image will need to have different UUIDs so we will use VBoxManage internalcommands sethduuid command to achieve this.

vbhost % for I in $( seq 6 ); do cp FreeBSD-12.0-RELEASE-amd64.vmdk    vbox_GlusterFS_${I}.vmdk; done
vbhost % for I in $( seq 6 ); do VBoxManage internalcommands sethduuid vbox_GlusterFS_${I}.vmdk; done

To start the whole GlusterFS environment on VirtualBox use these commands.

vbhost % VBoxManage list vms | grep GlusterFS
"FreeBSD GlusterFS 1" {162a3b6f-4ec9-4709-bff8-162b0c8c9c41}
"FreeBSD GlusterFS 2" {2e30326c-ac5d-41d2-9b28-483375df38f6}
"FreeBSD GlusterFS 3" {6b2747ab-3ec6-4b1a-a28e-5d871d7891b3}
"FreeBSD GlusterFS 4" {12379cf8-31d9-4ff1-9945-465fc3ed15f0}
"FreeBSD GlusterFS 5" {a4b0d515-5924-4517-9052-df238c366f2b}
"FreeBSD GlusterFS 6" {66621755-1b97-4486-aa15-a7bec9edb343}

Check which GlusterFS machines are running.

vbhost % VBoxManage list runningvms | grep GlusterFS
vbhost %

Starting of the machines in VirtualBox Headless mode in parallel.

vbhost % VBoxManage list vms \
           | grep GlusterFS \
           | awk -F \" '{print $2}' \
           | while read I; do VBoxManage startvm "${I}" --type headless & done

After that command you should see these machines running.

vbhost % VBoxManage list runningvms
"FreeBSD GlusterFS 1" {162a3b6f-4ec9-4709-bff8-162b0c8c9c41}
"FreeBSD GlusterFS 2" {2e30326c-ac5d-41d2-9b28-483375df38f6}
"FreeBSD GlusterFS 3" {6b2747ab-3ec6-4b1a-a28e-5d871d7891b3}
"FreeBSD GlusterFS 4" {12379cf8-31d9-4ff1-9945-465fc3ed15f0}
"FreeBSD GlusterFS 5" {a4b0d515-5924-4517-9052-df238c366f2b}
"FreeBSD GlusterFS 6" {66621755-1b97-4486-aa15-a7bec9edb343}

Before we will try connect to our FreeBSD machines we need to make the minimal network configuration. Each FreeBSD machine will have such minimal /etc/rc.conf file as shown example for gluster1 host.

gluster1 # cat /etc/rc.conf
hostname=gluster1
ifconfig_DEFAULT="inet 10.0.10.11/24 up"
defaultrouter=10.0.10.1
sshd_enable=YES

For the setup purposes we will need to allow root login on these FreeBSD GlusterFS machines with PermitRootLogin yes option in the /etc/ssh/sshd_config file. You will also need to restart the sshd(8) service after the changes.

gluster1 # grep '^PermitRootLogin' /etc/ssh/sshd_config
PermitRootLogin yes
# service sshd restart

By using NAT Network with Port Forwarding the FreeBSD machines will be accessible on the localhost ports. For example the gluster1 machine will be available on port 2211, the gluster2 machine will be available on port 2212 and so on. This is shown in the sockstat utility output below.

vbhost % sockstat -l4
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
vermaden VBoxNetNAT 57622 17 udp4   *:*                   *:*
vermaden VBoxNetNAT 57622 19 tcp4   *:2211                *:*
vermaden VBoxNetNAT 57622 20 tcp4   *:2212                *:*
vermaden VBoxNetNAT 57622 21 tcp4   *:2213                *:*
vermaden VBoxNetNAT 57622 22 tcp4   *:2214                *:*
vermaden VBoxNetNAT 57622 23 tcp4   *:2215                *:*
vermaden VBoxNetNAT 57622 24 tcp4   *:2216                *:*
vermaden VBoxNetNAT 57622 28 tcp4   *:2240                *:*
vermaden VBoxNetNAT 57622 29 tcp4   *:9140                *:*
vermaden VBoxNetNAT 57622 30 tcp4   *:2220                *:*
root     sshd       96791 4  tcp4   *:22                  *:*

I think the corelation between IP address and the port on the host is obvious ๐Ÿ™‚

Here is the list of the machines with ports on localhost:

10.0.10.11 gluster1 2211
10.0.10.12 gluster2 2212
10.0.10.13 gluster3 2213
10.0.10.14 gluster4 2214
10.0.10.15 gluster5 2215
10.0.10.16 gluster6 2216

To connect to such machine from the VirtualBox host system you will need this command:

vbhost % ssh -l root localhost -p 2211

To not type that every time you need to login to gluster1 let’s make come changes to ~/.ssh/config file for convenience. This way it will be possible to login in very short way.

vbhost % ssh gluster1

Here is the modified ~/.ssh/config file.

vbhost % cat ~/.ssh/config
# GENERAL
  StrictHostKeyChecking no
  LogLevel              quiet
  KeepAlive             yes
  ServerAliveInterval   30
  VerifyHostKeyDNS      no

# ALL HOSTS SETTINGS
Host *
  StrictHostKeyChecking no
  Compression           yes

# GLUSTER
Host gluster1
  User root
  Hostname 127.0.0.1
  Port 2211

Host gluster2
  User root
  Hostname 127.0.0.1
  Port 2212

Host gluster3
  User root
  Hostname 127.0.0.1
  Port 2213

Host gluster4
  User root
  Hostname 127.0.0.1
  Port 2214

Host gluster5
  User root
  Hostname 127.0.0.1
  Port 2215

Host gluster6
  User root
  Hostname 127.0.0.1
  Port 2216

I assume that you already have some SSH keys generated (with ~/.ssh/id_rsa as private key) so lets remove the need to type password on each SSH login.

vbhost % ssh-copy-id -i ~/.ssh/id_rsa gluster1
Password for root@gluster1:

vbhost % ssh-copy-id -i ~/.ssh/id_rsa gluster2
Password for root@gluster2:

vbhost % ssh-copy-id -i ~/.ssh/id_rsa gluster3
Password for root@gluster3:

vbhost % ssh-copy-id -i ~/.ssh/id_rsa gluster4
Password for root@gluster4:

vbhost % ssh-copy-id -i ~/.ssh/id_rsa gluster5
Password for root@gluster5:

vbhost % ssh-copy-id -i ~/.ssh/id_rsa gluster6
Password for root@gluster6:

Ansible Setup

As we already have SSH integration now we will configure Ansible to connect to out ‘localhost’ ports for FreeBSD machines.

Here is the Ansible’s hosts file.

vbhost % cat hosts
[gluster]
gluster1 ansible_port=2211 ansible_host=127.0.0.1 ansible_user=root
gluster2 ansible_port=2212 ansible_host=127.0.0.1 ansible_user=root
gluster3 ansible_port=2213 ansible_host=127.0.0.1 ansible_user=root
gluster4 ansible_port=2214 ansible_host=127.0.0.1 ansible_user=root
gluster5 ansible_port=2215 ansible_host=127.0.0.1 ansible_user=root
gluster6 ansible_port=2216 ansible_host=127.0.0.1 ansible_user=root

[gluster:vars]
ansible_python_interpreter=/usr/local/bin/python2.7

Here is the listing of these machines using ansible command.

vbhost % ansible -i hosts --list-hosts gluster
  hosts (6):
    gluster1
    gluster2
    gluster3
    gluster4
    gluster5
    gluster6

Lets verify that out Ansible setup works correctly.

vbhost % ansible -i hosts -m raw -a 'echo' gluster
gluster1 | CHANGED | rc=0 >>



gluster3 | CHANGED | rc=0 >>



gluster2 | CHANGED | rc=0 >>



gluster5 | CHANGED | rc=0 >>



gluster4 | CHANGED | rc=0 >>



gluster6 | CHANGED | rc=0 >>

It works as desired.

We are not able to use Ansible modules other then Raw because by default Python is not installed on FreeBSD as shown below.

vbhost % ansible -i hosts -m ping gluster
gluster1 | FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "/bin/sh: /usr/local/bin/python2.7: not found\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 127
}
gluster2 | FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "/bin/sh: /usr/local/bin/python2.7: not found\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 127
}
gluster4 | FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "/bin/sh: /usr/local/bin/python2.7: not found\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 127
}
gluster5 | FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "/bin/sh: /usr/local/bin/python2.7: not found\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 127
}
gluster3 | FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "/bin/sh: /usr/local/bin/python2.7: not found\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 127
}
gluster6 | FAILED! => {
    "changed": false,
    "module_stderr": "",
    "module_stdout": "/bin/sh: /usr/local/bin/python2.7: not found\r\n",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 127
}

We need to get Python installed on FreeBSD.

We will partially use Ansible for this and partially the GNU Parallel.

vbhost % ansible -i hosts --list-hosts gluster \
           | sed 1d \
           | while read I; do ssh ${I} env ASSUME_ALWAYS_YES=yes pkg install python; done
pkg: Error fetching http://pkg.FreeBSD.org/FreeBSD:12:amd64/quarterly/Latest/pkg.txz: No address record
A pre-built version of pkg could not be found for your system.
Consider changing PACKAGESITE or installing it from ports: 'ports-mgmt/pkg'.
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:12:amd64/quarterly, please wait...

… we forgot about setting up DNS in the FreeBSD machines, let’s fix that.

It is as easy as executing echo nameserver 1.1.1.1 > /etc/resolv.conf command on each FreeBSD machine.

Lets verify what input will be sent to GNU Parallel before executing it.

vbhost % ansible -i hosts --list-hosts gluster \
           | sed 1d \
           | while read I; do echo "ssh ${I} 'echo nameserver 1.1.1.1 > /etc/resolv.conf'"; done
ssh gluster1 'echo nameserver 1.1.1.1 > /etc/resolv.conf'
ssh gluster2 'echo nameserver 1.1.1.1 > /etc/resolv.conf'
ssh gluster3 'echo nameserver 1.1.1.1 > /etc/resolv.conf'
ssh gluster4 'echo nameserver 1.1.1.1 > /etc/resolv.conf'
ssh gluster5 'echo nameserver 1.1.1.1 > /etc/resolv.conf'
ssh gluster6 'echo nameserver 1.1.1.1 > /etc/resolv.conf'

Looks reasonable, lets engage the GNU Parallel then.

vbhost % ansible -i hosts --list-hosts gluster \
           | sed 1d \
           | while read I; do echo "ssh ${I} 'echo nameserver 1.1.1.1 > /etc/resolv.conf'"; done | parallel

Computers / CPU cores / Max jobs to run
1:local / 2 / 2

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
local:0/6/100%/1.0s

We will now verify that the DNS is configured properly on the FreeBSD machines.

vbhost % for I in $( jot 6 ); do echo -n "gluster${I} "; ssh gluster${I} 'cat /etc/resolv.conf'; done
gluster1 nameserver 1.1.1.1
gluster2 nameserver 1.1.1.1
gluster3 nameserver 1.1.1.1
gluster4 nameserver 1.1.1.1
gluster5 nameserver 1.1.1.1
gluster6 nameserver 1.1.1.1

Verification of the DNS by using ping(8) to test Internet connectivity.

vbhost % for I in $( jot 6 ); do echo; echo "gluster${I}"; ssh gluster${I} host freebsd.org; done

gluster1
freebsd.org has address 96.47.72.84
freebsd.org has IPv6 address 2610:1c1:1:606c::50:15
freebsd.org mail is handled by 10 mx1.freebsd.org.
freebsd.org mail is handled by 30 mx66.freebsd.org.

gluster2
freebsd.org has address 96.47.72.84
freebsd.org has IPv6 address 2610:1c1:1:606c::50:15
freebsd.org mail is handled by 30 mx66.freebsd.org.
freebsd.org mail is handled by 10 mx1.freebsd.org.

gluster3
freebsd.org has address 96.47.72.84
freebsd.org has IPv6 address 2610:1c1:1:606c::50:15
freebsd.org mail is handled by 30 mx66.freebsd.org.
freebsd.org mail is handled by 10 mx1.freebsd.org.

gluster4
freebsd.org has address 96.47.72.84
freebsd.org has IPv6 address 2610:1c1:1:606c::50:15
freebsd.org mail is handled by 30 mx66.freebsd.org.
freebsd.org mail is handled by 10 mx1.freebsd.org.

gluster5
freebsd.org has address 96.47.72.84
freebsd.org has IPv6 address 2610:1c1:1:606c::50:15
freebsd.org mail is handled by 10 mx1.freebsd.org.
freebsd.org mail is handled by 30 mx66.freebsd.org.

gluster6
freebsd.org has address 96.47.72.84
freebsd.org has IPv6 address 2610:1c1:1:606c::50:15
freebsd.org mail is handled by 10 mx1.freebsd.org.
freebsd.org mail is handled by 30 mx66.freebsd.org.

The DNS resolution works properly, now we will switch from the default quarterly pkg(8) repository to the latest one which has more frequent updates as the name suggests. We will need to use sed -i '' s/quarterly/latest/g /etc/pkg/FreeBSD.conf command on each FreeBSD machine.

Verification what will be sent to GNU Parallel.

vbhost % ansible -i hosts --list-hosts gluster \
           | sed 1d \
           | while read I; do echo "ssh ${I} 'sed -i \"\" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'"; done
ssh gluster1 'sed -i "" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'
ssh gluster2 'sed -i "" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'
ssh gluster3 'sed -i "" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'
ssh gluster4 'sed -i "" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'
ssh gluster5 'sed -i "" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'
ssh gluster6 'sed -i "" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'

Let’s send the command to FreeBSD machines then.

vbhost % ansible -i hosts --list-hosts gluster \
           | sed 1d \
           | while read I; do echo "ssh $I 'sed -i \"\" s/quarterly/latest/g /etc/pkg/FreeBSD.conf'"; done | parallel

Computers / CPU cores / Max jobs to run
1:local / 2 / 2

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
local:0/6/100%/1.0s

As shown below the latest repository is configured in the /etc/pkg/FreeBSD.conf file on each FreeBSD machine.

vbhost % ssh gluster3 tail -7 /etc/pkg/FreeBSD.conf
FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

We may now get back to Python.

vbhost % ansible -i hosts --list-hosts gluster \
           | sed 1d \
           | while read I; do echo ssh ${I} env ASSUME_ALWAYS_YES=yes pkg install python; done
ssh gluster1 env ASSUME_ALWAYS_YES=yes pkg install python
ssh gluster2 env ASSUME_ALWAYS_YES=yes pkg install python
ssh gluster3 env ASSUME_ALWAYS_YES=yes pkg install python
ssh gluster4 env ASSUME_ALWAYS_YES=yes pkg install python
ssh gluster5 env ASSUME_ALWAYS_YES=yes pkg install python
ssh gluster6 env ASSUME_ALWAYS_YES=yes pkg install python

… and execution on the FreeBSD machines with GNU Parallel.

vbhost % ansible -i hosts --list-hosts gluster \ 
           | sed 1d \
           | while read I; do echo ssh ${I} env ASSUME_ALWAYS_YES=yes pkg install python; done | parallel

Computers / CPU cores / Max jobs to run
1:local / 2 / 2

Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
local:0/6/100%/156.0s

The Python packages and its dependencies are installed.

vbhost % ssh gluster3 pkg info
gettext-runtime-0.19.8.1_2     GNU gettext runtime libraries and programs
indexinfo-0.3.1                Utility to regenerate the GNU info page index
libffi-3.2.1_3                 Foreign Function Interface
pkg-1.10.5_5                   Package manager
python-2.7_3,2                 "meta-port" for the default version of Python interpreter
python2-2_3                    The "meta-port" for version 2 of the Python interpreter
python27-2.7.15                Interpreted object-oriented programming language
readline-7.0.5                 Library for editing command lines as they are typed

Now with Ansible Ping module works as desired.

% ansible -i hosts -m ping gluster
gluster1 | SUCCESS => {
"changed": false,
"ping": "pong"
}
gluster4 | SUCCESS => {
"changed": false,
"ping": "pong"
}
gluster5 | SUCCESS => {
"changed": false,
"ping": "pong"
}
gluster3 | SUCCESS => {
"changed": false,
"ping": "pong"
}
gluster2 | SUCCESS => {
"changed": false,
"ping": "pong"
}
gluster6 | SUCCESS => {
"changed": false,
"ping": "pong"
}

GlusterFS Volume Options

GlusterFS has a lot of options to setup the volume. They are described in the GlusterFS Administration Guide in the Setting up GlusterFS Volumes part. Here they are:

Distributed – Distributed volumes distribute files across the bricks in the volume. You can use distributed volumes where the requirement is to scale storage and the redundancy is either not important or is provided by other hardware/software layers.

Replicated – Replicated volumes replicate files across bricks in the volume. You can use replicated volumes in environments where high-availability and high-reliability are critical.

Distributed Replicated – Distributed replicated volumes distribute files across replicated bricks in the volume. You can use distributed replicated volumes in environments where the requirement is to scale storage and high-reliability is critical. Distributed replicated volumes also offer improved read performance in most environments.

Dispersed – Dispersed volumes are based on erasure codes, providing space-efficient protection against disk or server failures. It stores an encoded fragment of the original file to each brick in a way that only a subset of the fragments is needed to recover the original file. The number of bricks that can be missing without losing access to data is configured by the administrator on volume creation time.

Distributed Dispersed – Distributed dispersed volumes distribute files across dispersed subvolumes. This has the same advantages of distribute replicate volumes, but using disperse to store the data into the bricks.

Striped [Deprecated] – Striped volumes stripes data across bricks in the volume. For best results, you should use striped volumes only in high concurrency environments accessing very large files.

Distributed Striped [Deprecated] – Distributed striped volumes stripe data across two or more nodes in the cluster. You should use distributed striped volumes where the requirement is to scale storage and in high concurrency environments accessing very large files is critical.

Distributed Striped Replicated [Deprecated] – Distributed striped replicated volumes distributes striped data across replicated bricks in the cluster. For best results, you should use distributed striped replicated volumes in highly concurrent environments where parallel access of very large files and performance is critical. In this release, configuration of this volume type is supported only for Map Reduce workloads.

Striped Replicated [Deprecated] – Striped replicated volumes stripes data across replicated bricks in the cluster. For best results, you should use striped replicated volumes in highly concurrent environments where there is parallel access of very large files and performance is critical. In this release, configuration of this volume type is supported only for Map Reduce workloads.

From all of the above still supported the Dispersed volume seems to be the best choice. Like Minio Dispersed volumes are based on erasure codes.

As we have 6 servers we will use 4 + 2 setup which is logical RAID6 against these 6 servers. This means that we will be able to lost 2 of them without service outage. This also means that if we will upload 100 MB file to our volume we will use 150 MB of space across these 6 servers with 25 MB on each node.

We can visualize this as following ASCII diagram.

+-----------+ +-----------+ +-----------+ +-----------+ +-----------+ +-----------+
|  gluster1 | |  gluster2 | |  gluster3 | |  gluster4 | |  gluster5 | |  gluster6 |
|           | |           | |           | |           | |           | |           |
|    brick1 | |    brick2 | |    brick3 | |    brick4 | |    brick5 | |    brick6 |
+-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
      |             |             |             |             |             |
    25|MB         25|MB         25|MB         25|MB         25|MB         25|MB
      |             |             |             |             |             |
      +-------------+-------------+------+------+-------------+-------------+
                                         |
                                      100|MB
                                         |
                                     +---+---+
                                     | file0 |
                                     +-------+

Deploy GlusterFS Cluster

We will use gluster-setup.yml as our Ansible playbook.

Lets create something for the start, for example to always install the latest Python package.

vbhost % cat gluster-setup.yml
---
- name: Install and Setup GlusterFS on FreeBSD
  hosts: gluster
  user: root
  tasks:

  - name: Install Latest Python Package
    pkgng:
      name: python
      state: latest

We will now execute it.

vbhost % ansible-playbook -i hosts gluster-setup.yml

PLAY [Install and Setup GlusterFS on FreeBSD] **********************************

TASK [Gathering Facts] *********************************************************
ok: [gluster3]
ok: [gluster5]
ok: [gluster1]
ok: [gluster4]
ok: [gluster2]
ok: [gluster6]

TASK [Install Latest Python Package] *******************************************
ok: [gluster4]
ok: [gluster2]
ok: [gluster5]
ok: [gluster3]
ok: [gluster1]
ok: [gluster6]

PLAY RECAP *********************************************************************
gluster1                   : ok=2    changed=0    unreachable=0    failed=0
gluster2                   : ok=2    changed=0    unreachable=0    failed=0
gluster3                   : ok=2    changed=0    unreachable=0    failed=0
gluster4                   : ok=2    changed=0    unreachable=0    failed=0
gluster5                   : ok=2    changed=0    unreachable=0    failed=0
gluster6                   : ok=2    changed=0    unreachable=0    failed=0

We just installed Python on these machines no update was needed.

As we will be creating cluster we need to add time synchronization between the nodes of the cluster. We will use mose obvious solution – the ntpd(8) daemon that is in the FreeBSD base system. These lines are added to our gluster-setup.yml playbook to achieve this goal

  - name: Enable NTPD Service
    raw: sysrc ntpd_enable=YES

  - name: Start NTPD Service
    service:
      name: ntpd
      state: started

After executing the playbook again with the ansible-playbook -i hosts gluster-setup.yml command we will see additional output as the one shown below.

TASK [Enable NTPD Service] ************************************************
changed: [gluster2]
changed: [gluster1]
changed: [gluster4]
changed: [gluster5]
changed: [gluster3]
changed: [gluster6]

TASK [Start NTPD Service] ******************************************************
changed: [gluster5]
changed: [gluster4]
changed: [gluster2]
changed: [gluster1]
changed: [gluster3]
changed: [gluster6]

Random verification of the NTP service.

vbhost % ssh gluster1 ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.freebsd.pool. .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ifj.edu.pl  10.0.2.4         3 u    1   64    1  119.956  -345759  32.552
 news-archive.ic 229.30.220.210   2 u    -   64    1   60.533  -345760  21.104

Now we need to install GlusterFS on FreeBSD machines – the glusterfs package.

We will add appropriate section to the playbook.

  - name: Install Latest GlusterFS Package
    pkgng:
      state: latest
      name:
      - glusterfs
      - ncdu

You can add more then one package to the pkgng Ansible module – for example I have also added ncdu package.

You can read more about pkgng Ansible module by typing the ansible-doc pkgng command or at least its short version with -s argument.

vbhost % ansible-doc -s pkgng
- name: Package manager for FreeBSD >= 9.0
  pkgng:
      annotation:            # A comma-separated list of keyvalue-pairs of the form `[=]'. A `+' denotes adding
                               an annotation, a `-' denotes removing an annotation, and `:' denotes
                               modifying an annotation. If setting or modifying annotations, a value
                               must be provided.
      autoremove:            # Remove automatically installed packages which are no longer needed.
      cached:                # Use local package base instead of fetching an updated one.
      chroot:                # Pkg will chroot in the specified environment. Can not be used together with `rootdir' or `jail'
                               options.
      jail:                  # Pkg will execute in the given jail name or id. Can not be used together with `chroot' or `rootdir'
                               options.
      name:                  # (required) Name or list of names of packages to install/remove.
      pkgsite:               # For pkgng versions before 1.1.4, specify packagesite to use for downloading packages. If not
                               specified, use settings from `/usr/local/etc/pkg.conf'. For newer
                               pkgng versions, specify a the name of a repository configured in
                               `/usr/local/etc/pkg/repos'.
      rootdir:               # For pkgng versions 1.5 and later, pkg will install all packages within the specified root directory.
                               Can not be used together with `chroot' or `jail' options.
      state:                 # State of the package. Note: "latest" added in 2.7

You can read more about this particular module on the following – https://docs.ansible.com/ansible/latest/modules/pkgng_module.html – Ansible page.

We will now add GlusterFS nodes to the /etc/hosts file and add autoboot_delay=1 parameter to the /boot/loader.conf file so our systems will boot 9 seconds faster as 10 is the default delay setting.

Here is out gluster-setup.yml Ansible playbook this far.

vbhost % cat gluster-setup.yml
---
- name: Install and Setup GlusterFS on FreeBSD
  hosts: gluster
  user: root
  tasks:

  - name: Install Latest Python Package
    pkgng:
      name: python
      state: latest

  - name: Enable NTPD Service
    raw: sysrc ntpd_enable=YES

  - name: Start NTPD Service
    service:
      name: ntpd
      state: started

  - name: Install Latest GlusterFS Package
    pkgng:
      state: latest
      name:
      - glusterfs
      - ncdu

  - name: Add Nodes to /etc/hosts File
    blockinfile:
      path: /etc/hosts
      block: |
        10.0.10.11 gluster1
        10.0.10.12 gluster2
        10.0.10.13 gluster3
        10.0.10.14 gluster4
        10.0.10.15 gluster5
        10.0.10.16 gluster6

  - name: Add autoboot_delay to /boot/loader.conf File
    lineinfile:
      path: /boot/loader.conf
      line: autoboot_delay=1
      create: yes

Here is the result of the execution of this playbook.

vbhost % ansible-playbook -i hosts gluster-setup.yml

PLAY [Install and Setup GlusterFS on FreeBSD] **********************************

TASK [Gathering Facts] *********************************************************
ok: [gluster3]
ok: [gluster5]
ok: [gluster1]
ok: [gluster4]
ok: [gluster2]
ok: [gluster6]

TASK [Install Latest Python Package] *******************************************
ok: [gluster4]
ok: [gluster2]
ok: [gluster5]
ok: [gluster3]
ok: [gluster1]
ok: [gluster6]

TASK [Install Latest GlusterFS Package] ****************************************
ok: [gluster2]
ok: [gluster1]
ok: [gluster3]
ok: [gluster5]
ok: [gluster4]
ok: [gluster6]

TASK [Add Nodes to /etc/hosts File] ********************************************
changed: [gluster5]
changed: [gluster4]
changed: [gluster2]
changed: [gluster3]
changed: [gluster1]
changed: [gluster6]

TASK [Enable GlusterFS Service] ************************************************
changed: [gluster1]
changed: [gluster4]
changed: [gluster2]
changed: [gluster3]
changed: [gluster5]
changed: [gluster6]

TASK [Add autoboot_delay to /boot/loader.conf File] ****************************
changed: [gluster3]
changed: [gluster2]
changed: [gluster5]
changed: [gluster1]
changed: [gluster4]
changed: [gluster6]

PLAY RECAP *********************************************************************
gluster1                   : ok=6    changed=3    unreachable=0    failed=0
gluster2                   : ok=6    changed=3    unreachable=0    failed=0
gluster3                   : ok=6    changed=3    unreachable=0    failed=0
gluster4                   : ok=6    changed=3    unreachable=0    failed=0
gluster5                   : ok=6    changed=3    unreachable=0    failed=0
gluster6                   : ok=6    changed=3    unreachable=0    failed=0

Let’s check that FreeBSD machines can now ping each other by names.

vbhost % ssh gluster6 cat /etc/hosts
# LOOPBACK
127.0.0.1      localhost localhost.my.domain
::1            localhost localhost.my.domain

# BEGIN ANSIBLE MANAGED BLOCK
10.0.10.11 gluster1
10.0.10.12 gluster2
10.0.10.13 gluster3
10.0.10.14 gluster4
10.0.10.15 gluster5
10.0.10.16 gluster6
# END ANSIBLE MANAGED BLOCK

vbhost % ssh gluster1 ping -c 1 gluster3
PING gluster3 (10.0.10.13): 56 data bytes
64 bytes from 10.0.10.13: icmp_seq=0 ttl=64 time=1.924 ms

--- gluster3 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.924/1.924/1.924/0.000 ms

… and our /boot/loader.conf file.

vbhost % ssh gluster4 cat /boot/loader.conf
autoboot_delay=1

Now we need to create directories for GlusterFS data. Without better idea we will use /data directory with /data/colume1 as the directory for volume1 and bricks will be put as /data/volume1/brick1 dirs. In this setup I will use just one brick per server but in production environment you would probably use one brick per physical disk.

Here is the playbook command we will use to create these directories on FreeBSD machines.

  - name: Create brick* Directories for volume1
    raw: mkdir -p /data/volume1/brick` hostname | grep -o -E '[0-9]+' `

After executing it with ansible-playbook -i hosts gluster-setup.yml command the directories has beed created.

vbhost % ssh gluster2 find /data -ls | column -t
2247168  8  drwxr-xr-x  3  root  wheel  512  Dec  28  17:48  /data
2247169  8  drwxr-xr-x  3  root  wheel  512  Dec  28  17:48  /data/volume2
2247170  8  drwxr-xr-x  2  root  wheel  512  Dec  28  17:48  /data/volume2/brick2


We now need to add glusterd_enable=YES to the /etc/rc.conf file on GlusterFS nodes and then start the GlsuterFS service.

This is the snippet we will add to our playbook.

  - name: Enable GlusterFS Service
    raw: sysrc glusterd_enable=YES

  - name: Start GlusterFS Service
    service:
      name: glusterd
      state: started

Let’s make quick random verification.

vbhost % ssh gluster4 service glusterd status
glusterd is running as pid 2684.

Now we need to proceed to the last part of the GlusterFS setup – create the volume.

We will do this from the gluster1 – the 1st node of the GlusterFS cluster.

First we need to peer probe other nodes.

gluster1 # gluster peer probe gluster1
peer probe: success. Probe on localhost not needed
gluster1 # gluster peer probe gluster2
peer probe: success.
gluster1 # gluster peer probe gluster3
peer probe: success.
gluster1 # gluster peer probe gluster4
peer probe: success.
gluster1 # gluster peer probe gluster5
peer probe: success.
gluster1 # gluster peer probe gluster6
peer probe: success.

Then we can create the volume. We will need to use force option to because for our example setup we will use directories on the root partition.

gluster1 # gluster volume create volume1 \
             disperse-data 4 \
             redundancy 2 \
             transport tcp \
             gluster1:/data/volume1/brick1 \
             gluster2:/data/volume1/brick2 \
             gluster3:/data/volume1/brick3 \
             gluster4:/data/volume1/brick4 \
             gluster5:/data/volume1/brick5 \
             gluster6:/data/volume1/brick6 \
             force
volume create: volume1: success: please start the volume to access data

We can now start the volume1 GlsuerFS volume.

gluster1 # gluster volume start volume1
volume start: volume1: success

gluster1 # gluster volume status volume1
Status of volume: volume1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick gluster1:/data/volume1/brick1         N/A       N/A        N       N/A
Brick gluster2:/data/volume1/brick2         N/A       N/A        N       N/A
Brick gluster3:/data/volume1/brick3         N/A       N/A        N       N/A
Brick gluster4:/data/volume1/brick4         N/A       N/A        N       N/A
Brick gluster5:/data/volume1/brick5         N/A       N/A        N       N/A
Brick gluster6:/data/volume1/brick6         N/A       N/A        N       N/A
Self-heal Daemon on localhost               N/A       N/A        N       644
Self-heal Daemon on gluster6                N/A       N/A        N       643
Self-heal Daemon on gluster5                N/A       N/A        N       647
Self-heal Daemon on gluster2                N/A       N/A        N       645
Self-heal Daemon on gluster3                N/A       N/A        N       645
Self-heal Daemon on gluster4                N/A       N/A        N       645

Task Status of Volume volume1
------------------------------------------------------------------------------
There are no active volume tasks

gluster1 # gluster volume info volume1

Volume Name: volume1
Type: Disperse
Volume ID: 68cf9607-16bc-4550-9b6b-16a5c7656f51
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x (4 + 2) = 6
Transport-type: tcp
Bricks:
Brick1: gluster1:/data/volume1/brick1
Brick2: gluster2:/data/volume1/brick2
Brick3: gluster3:/data/volume1/brick3
Brick4: gluster4:/data/volume1/brick4
Brick5: gluster5:/data/volume1/brick5
Brick6: gluster6:/data/volume1/brick6
Options Reconfigured:
nfs.disable: on
transport.address-family: inet

Here are contents of currently unused/empty brick.

gluster1 # find /data/volume1/brick1
/data/volume1/brick1
/data/volume1/brick1/.glusterfs
/data/volume1/brick1/.glusterfs/indices
/data/volume1/brick1/.glusterfs/indices/xattrop
/data/volume1/brick1/.glusterfs/indices/entry-changes
/data/volume1/brick1/.glusterfs/quarantine
/data/volume1/brick1/.glusterfs/quarantine/stub-00000000-0000-0000-0000-000000000008
/data/volume1/brick1/.glusterfs/changelogs
/data/volume1/brick1/.glusterfs/changelogs/htime
/data/volume1/brick1/.glusterfs/changelogs/csnap
/data/volume1/brick1/.glusterfs/brick1.db
/data/volume1/brick1/.glusterfs/brick1.db-wal
/data/volume1/brick1/.glusterfs/brick1.db-shm
/data/volume1/brick1/.glusterfs/00
/data/volume1/brick1/.glusterfs/00/00
/data/volume1/brick1/.glusterfs/00/00/00000000-0000-0000-0000-000000000001
/data/volume1/brick1/.glusterfs/landfill
/data/volume1/brick1/.glusterfs/unlink
/data/volume1/brick1/.glusterfs/health_check

The 6-node GlusterFS cluster is now complete and volume1 available to use.

Alternative

The GlusterFS’s documentation Quick Start Guide also suggests using Ansible to deploy and manage GlusterFS with gluster-ansible repository or gluster-ansible-cluster but they have below requirements.

  • Ansible version 2.5 or above.
  • GlusterFS version 3.2 or above.

As GlusterFS on FreeBSD is at 3.11.1 version I did not used them.

FreeBSD Client

We will now use another VirtualBox machine – also based on the same FreeBSD 12.0-RELEASE image – to create FreeBSD Client machine that will mount our volume1 volume.

We will need to install glusterfs package with pkg(8) command. Then we will use mount_glusterfs command to mount the volume. Keep in mind that in order to mount GlusterFS volume the FUSE (fuse.ko kernel module is needed.

client # pkg install glusterfs

client # kldload fuse

client # mount_glusterfs 10.0.10.11:volume1 /mnt

client # echo $?
0

client # mount
/dev/gpt/rootfs on / (ufs, local, soft-updates)
devfs on /dev (devfs, local, multilabel)
/dev/fuse on /mnt (fusefs, local, synchronous)

client # ls /mnt
ls: /mnt: Socket is not connected

It is mounted but does not work. The solution to this problem is to add appropriate /etc/hosts entries to the GlusterFS nodes.

client # cat /etc/hosts
::1                     localhost localhost.my.domain
127.0.0.1               localhost localhost.my.domain

10.0.10.11 gluster1
10.0.10.12 gluster2
10.0.10.13 gluster3
10.0.10.14 gluster4
10.0.10.15 gluster5
10.0.10.16 gluster6

Lets mount it again now with needed /etc/hosts entries.

client # umount /mnt

client # mount_glusterfs gluster1:volume1 /mnt

client # ls /mnt
client #

We now have our GlusterFS volume properly mounted and working on the FreeBSD Client machine.

Lets write some file there with dd(8) to see how it works.

client # dd  FILE bs=1m count=100 status=progress
  73400320 bytes (73 MB, 70 MiB) transferred 1.016s, 72 MB/s
100+0 records in
100+0 records out
104857600 bytes transferred in 1.565618 secs (66975227 bytes/sec)

Let’s see how it looks in the brick directory.

gluster1 # ls -lh /data/volume1/brick1
total 25640
drw-------  10 root  wheel   512B Jan  3 18:31 .glusterfs
-rw-r--r--   2 root  wheel    25M Jan  3 18:31 FILE

gluster1 # find /data
/data/
/data/volume1
/data/volume1/brick1
/data/volume1/brick1/.glusterfs
/data/volume1/brick1/.glusterfs/indices
/data/volume1/brick1/.glusterfs/indices/xattrop
/data/volume1/brick1/.glusterfs/indices/xattrop/xattrop-aed814f1-0eb0-46a1-b569-aeddf5048e06
/data/volume1/brick1/.glusterfs/indices/entry-changes
/data/volume1/brick1/.glusterfs/quarantine
/data/volume1/brick1/.glusterfs/quarantine/stub-00000000-0000-0000-0000-000000000008
/data/volume1/brick1/.glusterfs/changelogs
/data/volume1/brick1/.glusterfs/changelogs/htime
/data/volume1/brick1/.glusterfs/changelogs/csnap
/data/volume1/brick1/.glusterfs/brick1.db
/data/volume1/brick1/.glusterfs/brick1.db-wal
/data/volume1/brick1/.glusterfs/brick1.db-shm
/data/volume1/brick1/.glusterfs/00
/data/volume1/brick1/.glusterfs/00/00
/data/volume1/brick1/.glusterfs/00/00/00000000-0000-0000-0000-000000000001
/data/volume1/brick1/.glusterfs/landfill
/data/volume1/brick1/.glusterfs/unlink
/data/volume1/brick1/.glusterfs/health_check
/data/volume1/brick1/.glusterfs/ac
/data/volume1/brick1/.glusterfs/ac/b4
/data/volume1/brick1/.glusterfs/11
/data/volume1/brick1/.glusterfs/11/50
/data/volume1/brick1/.glusterfs/11/50/115043ca-420f-48b5-af05-c9552db2e585
/data/volume1/brick1/FILE

Linux Client

I will also show how to mount GlusterFS volume on the Red Hat clone CentOS in its latest 7.6 incarnation. It will require glusterfs-fuse package installation.

[root@localhost ~]# yum install glusterfs-fuse


[root@localhost ~]# rpm -q --filesbypkg glusterfs-fuse | grep /sbin/mount.glusterfs
glusterfs-fuse            /sbin/mount.glusterfs

[root@localhost ~]# mount.glusterfs 10.0.10.11:volume1 /mnt
Mount failed. Please check the log file for more details.

Similarly like with FreeBSD Client the /etc/hosts entries are needed.

[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.10.11 gluster1
10.0.10.12 gluster2
10.0.10.13 gluster3
10.0.10.14 gluster4
10.0.10.15 gluster5
10.0.10.16 gluster6

[root@localhost ~]# mount.glusterfs 10.0.10.11:volume1 /mnt

[root@localhost ~]# ls /mnt
FILE

[root@localhost ~]# mount
10.0.10.11:volume1 on /mnt type fuse.glusterfs (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=131072)

With apropriate /etc/hosts entries it works as desired. We see the FILE file generated fron the FreeBSD Client machine.

GlusterFS Cluster Redundancy

After messing with the volume and creating and deleting various files I also tested its redundancy. In theory this RAID6 equivalent protection should protect us from the loss of two of six servers. After shutdown of two VirtualBox machines the volume is still available and ready to use.

Closing Thougts

Pity that FreeBSD does not provide more modern GlusterFS package as currently only 3.11.1 version is available.

EOF

Valuable News – 2018/12/21

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here so someone else can

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

First FreeBSD 12.0-RELEASE Errata.
https://svnweb.freebsd.org/doc?view=revision&revision=52685

OPNsense 18.7.9 Released.
https://opnsense.org/opnsense-18-7-9-released/

How to Install and Configure Basic OPNsense Firewall.
https://www.tecmint.com/install-and-configure-opnsense-firewall/

IPv666 – Address of the Beast.
https://l.avala.mp/?p=285

Let’s Encrypt – Certbot for OpenBSD’s httpd.
https://dev.to/nabbisen/lets-encrypt-certbot-for-openbsds-httpd-3ofd

FreeBSD ZFS vs. Linux EXT4/Btrfs RAID with 20 SSDs.
https://www.phoronix.com/scan.php?page=article&item=freebsd-12-zfs

FreeBSD Commit That Can Drastically Lower Load on gssd(8) on Large NFS Servers.
https://svnweb.freebsd.org/base?view=revision&revision=342114

In Other BSDs for 2018/12/15.
https://www.dragonflydigest.com/2018/12/15/22185.html

HardenedBSD 13-CURRENT on Pinebook.
https://twitter.com/lattera/status/1073699720923615232

Rouge Legacy on OpenBSD using PS4 dual shock pad.
https://twitter.com/mulander/status/1074015714363826176

How to Install GNOME or KDE PLASMA 5 on FreeBSD 12.
https://www.osradar.com/how-to-install-gnome-or-plasma5-kde-on-freebsd-12/

Write your Own Virtual Machine.
https://justinmeiners.github.io/lc3-vm/

OpenSMTPD 6.4.1 Released.
https://www.opensmtpd.org/announces/release-6.4.1.txt

Fix boot/install hangs/panic on HPE ProLiant MicroServer Gen10 Servers.
https://svnweb.freebsd.org/base?view=revision&revision=342160

HardenedBSD first to ship with LLVM Non-Cross-DSO CFI applied to entire base operating system.
https://twitter.com/lattera/status/1074807820959342593

HardenedBSD 12-STABLE v1200058 Available.
https://hardenedbsd.org/article/op/2018-12-17/stable-release-hardenedbsd-stable-12-stable-v1200058

FreeBSD fixes PCI shared interrupts during suspend and resume.
https://svnweb.freebsd.org/base?view=revision&revision=342170

KDE ports on FreeBSD 12 (amd64).
https://euroquis.nl/bobulate/?p=2013

Aberdeen FreeBSD Hackathon on 2019/04/17-19.
https://www.eventbrite.com/e/2019-aberdeen-freebsd-hackathon-registration-53410505259

OPNids – Integration of Suricata IDS with purpose-built Machine Learning Scripting Engine Available.
https://www.opnids.io/

Running FreeBSD on Pinebook – Review.
https://blog.madadipouya.com/2018/12/19/running-freebsd-on-pinebook-a-review/

VirtualBox 6.0.0 Released.
https://www.virtualbox.org/wiki/Changelog-6.0#v0

Cartika ISP switches from Bacula Enterprise to Bareos.
Clusterlogics – Backup as a Service (BaaS) with Bareos.
https://www.bareos.com/files/references/english/cartika-case-study-en.pdf
https://www.linkedin.com/pulse/evolution-software-platform-importance-open-source-andrew-rouchotas/

The Future of ZFS in FreeBSD.
FreeBSD will rebase its ZFS code from Illumos to ZFS on Linux (ZoL).
https://lists.freebsd.org/pipermail/freebsd-current/2018-December/072422.html

OpenRC on FreeBSD.
https://lists.freebsd.org/pipermail/freebsd-hackers/2018-December/053740.html

Bye Bye Mongo – Hello Postgres.
The Guardian migrated from Mongo DB to PostgreSQL on Amazon RDS.
https://www.theguardian.com/info/2018/nov/30/bye-bye-mongo-hello-postgres

FreeBSD 12 Review – Used as My Daily OS on Bare Metal.
https://youtu.be/revOJcX2rLs

BSD Now 277 – Nmap Level Up.
https://www.jupiterbroadcasting.com/128526/nmap-level-up-bsd-now-277/

XigmaNAS 11.2.0.4.6315 Available.
https://sourceforge.net/projects/xigmanas/files/XigmaNAS-11.2.0.4/11.2.0.4.6315/

Hardware

ESXi VSAN HP MicroServer Homelab.
http://www.cheesyboofs.co.uk/esxi-vsan-microserver-homelab

IBM Partners with Samsung to Include 7nm Chip Manufacturing.
https://newsroom.ibm.com/2018-12-20-IBM-Expands-Strategic-Partnership-with-Samsung-to-Include-7nm-Chip-Manufacturing

AMD Athlon 220GE and Athlon 240GE with Radeon Vega Graphics Launched.
https://www.anandtech.com/show/13741/amd-athlon-220ge-and-athlon-240ge-with-radeon-vega-graphics-launched

Life

FBI Secretly Collected Data on Aaron Swartz Earlier Than We Thought.
https://gizmodo.com/fbi-secretly-collected-data-on-aaron-swartz-earlier-tha-1831076900

How to Grow Old by Bertrand Russell.
https://sites.google.com/site/gobenyan/essay

Ask Hacker News – How did you decide where to live?
https://news.ycombinator.com/item?id=18688647

Digital Dissidents – What it Means to be Whistleblower.
https://www.aljazeera.com/programmes/specialseries/2016/03/digital-dissidents-160323141254755.html

Other

How Baldur’s Gate Saved the Computer RPG.
https://www.theringer.com/2018/12/21/18150363/baldurs-gate-bioware-1998-video-games

Firefox 64 built with GCC and Clang.
https://hubicka.blogspot.com/2018/12/firefox-64-built-with-gcc-and-clang.html

Johnson & Johnson Knew for Decades that Asbestos Lurked in its Baby Powder.
https://www.reuters.com/article/us-johnson-johnson-cancer-special-report-idUSKBN1OD1RQ

Signal: We can’t include a backdoor in our app for the Australian government.
https://www.zdnet.com/article/signal-we-cant-include-a-backdoor-in-our-app-for-the-australian-government/

The Best Programming Advice I Ever Got.
http://russolsen.com/articles/2012/08/09/the-best-programming-advice-i-ever-got.html

Logitech app security flaw allowed keystroke injection attacks.
https://www.zdnet.com/article/logitech-app-security-flaw-allowed-keystroke-injection-attacks/

How Peter Jackson Made WW I Footage Seem Astonishingly New.
https://www.nytimes.com/2018/12/16/movies/peter-jackson-war-movie.html

EOF

Valuable News – 2018/12/14

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here so someone else can

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

For The Love Of UFS.
https://youtu.be/oqbc7ICylcw

Introspection of My Thoughts on GhostBSD 18.10.
https://youtu.be/ESAlQjEvEHo

Visual Defragmenter for the Commodore 64.
https://www.pagetable.com/?p=978

From Bedrooms to Billions.
http://www.frombedroomstobillions.com/about-the-film

From Bedrooms to Billions: Amiga Years.
https://vimeo.com/ondemand/amiga

10 of the Best Video Game Documentaries.
https://www.vintagewave.net/blog/2018/11/30/10-of-the-best-video-game-documentaries

I Told You So. Again!
OpenSSL is Written by Monkeys.
https://www.peereboom.us/assl/assl/html/openssl.html

In Other BSDs for 2018/12/08.
https://www.dragonflydigest.com/2018/12/08/22175.html

Portability of tar features.
https://dev.gentoo.org/~mgorny/articles/portability-of-tar-features.html

How Douglas Engelbart Invented the Future.
https://www.smithsonianmag.com/innovation/douglas-engelbart-invented-future-180967498/

More Cavium Thunder X2 Commits Landed in FreeBSD.
https://svnweb.freebsd.org/base?view=revision&revision=341742
https://svnweb.freebsd.org/base?view=revision&revision=341743
https://svnweb.freebsd.org/base?view=revision&revision=341744

The tuxmachines.org Reviews GhostBSD 18.10.
http://www.tuxmachines.org/node/118061

Awesome UNIXยฎ.
Exploration of the world of UNIXยฎ including UNIX history and its relevance of today.
https://github.com/sirredbeard/Awesome-UNIX

FreeBSD 12 is Running Great On Dell PowerEdge R7425 EPYC Server.
https://www.phoronix.com/scan.php?page=article&item=freebsd12-dual-epyc

OpenSSH – Configuration to Keep Connection Alive.
https://dev.to/nabbisen/openssh-configuration-to-keep-connection-alive-to-suppress-timeout-3pa6

OPNsense Security Device Build.
https://cormier.co/post/opnsense-security-device-build/

OpenBSD on Laptop.
https://www.c0ffee.net/blog/openbsd-on-a-laptop/

Borg Backup 1.1.8 Released.
https://github.com/borgbackup/borg/releases/tag/1.1.8

FreeBSD Graphics Blog – Getting Started With drm-kmod.
https://freebsddesktop.github.io/2018/12/08/drm-kmod-primer.html

All HaikuOS kernel memory is now W^X.
https://git.haiku-os.org/haiku/commit/?id=cb0977326dd79327ff3e342816e0dd118019b058

FreeBSD adds ACPI based NUMA support for arm64.
https://svnweb.freebsd.org/base?view=revision&revision=341744

Installing MariaDB Server on OpenBSD.
https://dev.to/nabbisen/installing-mariadb-server-on-openbsd-5lm

OmniOS Community Edition r151{028f/026af/022cd}.
https://omniosce.org/article/release-028f-026af-022cd

FreeNAS 11.2 – Whats New?
https://youtu.be/uAbEFqnRJz0

Unprivileged Linux Users With UID Greater Then INT_MAX (2147483647) Can Execute Any Command.
https://thehackernews.com/2018/12/linux-user-privilege-policykit.html

OpenBSD on Microsoft Surface Go.
https://jcs.org/2018/08/31/surface_go

Sunny Valley Networks sponsored netmap(4) support for vtnet(4) to make it functional on FreeBSD.
https://svnweb.freebsd.org/base/stable/11/sys/dev/netmap/if_vtnet_netmap.h?revision=341478&view=markup

BSD Now 275 – OpenBSD in Stereo.
https://www.jupiterbroadcasting.com/128321/openbsd-in-stereo-bsd-now-275/

Oracle VM VirtualBox 6.0 RC1 Available.
https://blogs.oracle.com/virtualization/oracle-vm-virtualbox-60-release-candidate-1-now-available

KDE4 and QT4 Deprecated in FreeBSD.
KDE4 will be removed at the end of this year (before 2019/01).
QT4 will be removed in the middle of 2019/03.
https://euroquis.nl/bobulate/?p=2007

Clang updated to 7.0 in FreeBSD 13-CURRENT.
https://svnweb.freebsd.org/base?view=revision&revision=341825

PowerVM iSCSI Support.
https://www.ibm.com/developerworks/community/wikis/home?lang=en_us#!/wiki/Power%20Systems/page/iSCSI%20Support%20on%20PowerVM

Support for MacBookAir 7.1/7.2/8.1 added in FreeBSD.
https://svnweb.freebsd.org/base?view=revision&revision=341820
https://svnweb.freebsd.org/base?view=revision&revision=341988

OPNsense 18.7.9 Available.
https://forum.opnsense.org/index.php?topic=10650.0

Why should I have written ZeroMQ in C not C++ (Part I).
http://250bpm.com/blog:4

BSD Now 276 – Ho Ho Ho – 12.0.
https://www.jupiterbroadcasting.com/128421/ho-ho-ho-12-0-bsd-now-276/

Hardware

ARMed Attack – Intel/AMD Do Not See Torpedo Headed Their Way.
https://seekingalpha.com/article/4227086-armed-attack-intel-amd-see-torpedo-headed-way

Gigabyte MZ31-AR0 Review Single Socket AMD EPYC Motherboard.
https://www.servethehome.com/gigabyte-mz31-ar0-review-a-single-socket-amd-epyc-motherboard/

Super Micro says review found no malicious chips in motherboards.
https://www.reuters.com/article/us-supermicro-chips/super-micro-says-review-found-no-malicious-chips-in-motherboards-idUSKBN1OA12R

Why I’m usually unnerved when modern SSDs die on us.
https://utcc.utoronto.ca/~cks/space/blog/tech/SSDDeathDisturbing

First Pictures of 10nm Intel Ice Lake Xeon Server Chips.
https://www.servethehome.com/first-pictures-of-intel-ice-lake-xeon-server-chips/

Intel Architecture Day 2018 – Future of Core/Intel GPUs/10nm/Hybrid x86.
https://www.anandtech.com/show/13699/intel-architecture-day-2018-core-future-hybrid-x86

Life

Reason Many Ultrarich People Are Not Satisfied with Their Wealth.
https://www.theatlantic.com/family/archive/2018/12/rich-people-happy-money/577231/

Your Apps Know Where You Were Last Night and Theyโ€™re Not Keeping It Secret.
https://www.nytimes.com/interactive/2018/12/10/business/location-data-privacy-apps.html

Golden Age of Rich People Not Paying Their Taxes.
https://www.theatlantic.com/politics/archive/2018/12/rich-people-are-getting-away-not-paying-their-taxes/577798/

Other

Qualcomm says native Firefox browser is coming to Windows on ARM.
https://www.theverge.com/2018/12/6/18129456/qualcomm-snapdragon-pc-firefox-web-browser-64-bit-native-mozilla

Browser Diversity Starts with Us.
https://www.zeldman.com/2018/12/07/browser-diversity-starts-with-us/

Firefox Dilemma.
https://blog.tawhidhannan.co.uk/tech-zoomed-out/industry/firefox-dilemma/

Firefox 64 Released.
https://hacks.mozilla.org/2018/12/firefox-64-released/

Midori Browser 7.x Available.
https://www.midori-browser.org/2018/11/30/lorem-ipsum/

Google transferred ownership of Duck.com domain to DuckDuckGo.
https://www.namepros.com/blog/confirmed-duck-com-transfers-to-duckduckgo.1113728/

50 CVEs in 50 Days – Fuzzing Adobe Reader.
https://research.checkpoint.com/50-adobe-cves-in-50-days/

Windows 10 is still telling Microsoft what you’re doing even if you don’t want it to.
Microsoft baffles Windows 10 users by apparently collecting data about recently opened websites and apps when users have opted against sharing that information.
https://www.zdnet.com/article/is-windows-10-still-telling-microsoft-what-youre-doing-even-if-you-dont-want-it-to/

EOF

Valuable News – 2018/12/01

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here so someone else can

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

Fixing php72_fpm in OpenBSD 6.4.
https://dev.to/nabbisen/fixing-php72fpm-on-openbsd-64-f0f

Sometimes It’s Necessary – Running x86_64 Binaries on Talos II POWER9 System.
https://www.talospace.com/2018/11/sometimes-its-necessary-running-x8664.html

Our pragmatic attachment to OpenBSD PF for our firewall needs.
https://utcc.utoronto.ca/~cks/space/blog/sysadmin/OpenBSDPFAttachment

FreeBSD 12.0-RC2 Available.
https://lists.freebsd.org/pipermail/freebsd-stable/2018-November/090068.html

Super Capsicumizer 9000 for FreeBSD.
Run anything (like full blown GTK apps) under Capsicum.
https://github.com/myfreeweb/capsicumizer

Stardew Valley on FreeBSD.
http://bitcannon.net/post/stardew-valley-on-freebsd/

NetBSD ported FreeBSD’s sysrc as nbsysrc.
https://unitedbsd.com/t/nbsysrc-sysrc-for-netbsd/280

New CBSD 12.0.1 Release.
https://www.bsdstore.ru/en/news.html

GhostBSD 18.10 Screenshots.
https://www.distroscreens.com/2018/11/ghostbsd-1810-screenshots.html

Separate FreeBSD Images for arm64 PINEBOOK.
https://svnweb.freebsd.org/base?view=revision&revision=340981
https://people.freebsd.org/~manu/FreeBSD-13.0-CURRENT-arm64-aarch64-PINEBOOK.img.xz

The Chapter 14. HardenedBSD of the HardenedBSD Handbook has been migrated/ported to wiki page.
https://github.com/HardenedBSD/hardenedBSD/wiki

DragonFly BSD 5.4rc1 Image Available.
https://www.dragonflydigest.com/2018/11/27/22157.html

OpenBGPD – Adding Diversity to the Route Server Landscape.
https://labs.ripe.net/Members/claudio_jeker/openbgpd-adding-diversity-to-route-server-landscape

HardenedBSD 1100056.9 Available.
https://hardenedbsd.org/article/op/2018-11-28/stable-release-hardenedbsd-stable-11-stable-v11000569

BSD Now 274 – Language Assembly.
https://www.jupiterbroadcasting.com/128241/language-assembly-bsd-now-274/

Migrating OmniOS Virtual Machine from KVM to bhyve.
https://omniosce.org/info/bhyve_migrate

FreeBSD on XPS 13: Part 1.
https://jammy.co/posts/freebsd-on-xps-13-part-1/

FreeBSD on XPS 13: Part 2.
https://jammy.co/posts/freebsd-on-xps-13-part-2/

XigmaNAS 11.2.0.4.6229 Available.
https://sourceforge.net/projects/xigmanas/files/XigmaNAS-11.2.0.4/11.2.0.4.6229/

Interim Support Guarantee for FreeBSD 12.
https://lists.freebsd.org/pipermail/freebsd-announce/2018-November/001854.html

Shawn Webb open sourced scripts to automate building of HardenedBSD binary updates.
https://twitter.com/lattera/status/1068510009359777792
https://github.com/HardenedBSD/update-publisher

NetBSD Desktop Part 1 – Manual NetBSD Installation on GPT/UEFI.
https://unitedbsd.com/t/netbsd-desktop-part-1-manual-netbsd-installation-on-gpt-uefi/284

NetBSD Desktop Part 2 – Setup Wireless Networking on NetBSD.
https://unitedbsd.com/t/netbsd-desktop-pt-2-set-up-wireless-networking-on-netbsd-with-wpa-supplicant-and-dhcpcd/281

NetBSD Desktop Part 3 – Simple Stateful Firewall with NPF.
https://unitedbsd.com/t/netbsd-desktop-pt-3-simple-stateful-firewall-with-npf/286

Why BSD/OS is the best candidate for being the only tested legally open UNIX.
https://virtuallyfun.com/wordpress/2018/11/26/why-bsd-os-is-the-best-candidate-for-being-the-only-tested-legally-open-unix/

You can download BSD/OS 4.2 ISO images from here if you want to check it out.
https://archive.org/details/bsdi-42

Robust Upgrade on Ubuntu using ZFS and Containers.
https://www.prakashsurya.com/post/2018-11-30-robust-upgrade-on-ubuntu/

QuickStart Guide on pot.
https://people.freebsd.org/~pizzamig/pot/QuickStart.html

FreeBSD adds new small trim(1) tool.
To wipe blocks on flash devices that use wear-leveling algorithms.
https://svnweb.freebsd.org/base?view=revision&revision=341232

FreeBSD 12.0-RC3 Available.
https://lists.freebsd.org/pipermail/freebsd-stable/2018-December/090138.html

Call for Papers for BSDCan 2019 which will be held 2019/05/17-18 (Fri/Sat) in Ottawa, Canada.
https://www.bsdcan.org/2019/papers.php

Oracle VM VirtualBox 6.0 Beta 3 Released.
https://blogs.oracle.com/virtualization/oracle-vm-virtualbox-60-beta-3-released

Grepping User-Agent: from FreeBSD Developers Mail.
https://gist.github.com/Jehops/ed3d60b103df439ecea782bd9ed37fec

Hardware

Are cheap low power x86 CPUs an alternative to higher end makers ARM boards?
https://rk.edu.pl/en/are-cheap-low-power-x86-cpus-n-alternative-higher-end-makers-arm-boards/

IBM Mainframe z14 Microprocessor and System Control Design.
https://fuse.wikichip.org/news/941/isscc-2018-the-ibm-z14-microprocessor-and-system-control-design/

Odroid-H2 – Worldโ€™s first open-spec Intel Gemini Lake computer.
https://www.iotgadgets.com/2018/11/the-worlds-first-open-spec-intel-gemini-lake-single-board-computer-goes-out-of-stock-within-24-hours/

Odroid-H2 – Benchmarks of the Intel Powered $111 Board.
https://www.phoronix.com/scan.php?page=news_item&px=Intel-ODROID-H2-Benchmarks

Lenovo to pay $7.3m for installing adware in 750,000 laptops.
https://www.hackread.com/lenovo-to-pay-fine-for-installing-adware-in-laptops/

CeBIT is Dead.
https://www.anandtech.com/show/13656/cebit-trade-show-axed

Life

Why everything will collapse.
https://www.youtube.com/watch?v=YsA3PK8bQd8

Breathing Through the Nose May Offer Unique Brain Benefits.
https://www.nytimes.com/2018/11/20/well/mind/breathing-through-the-nose-may-offer-unique-brain-benefits.html

12 Monkeys Is the Apocalypse Movie We Need Right Now
https://www.vulture.com/2018/11/12-monkeys-why-terry-gilliams-movie-is-so-relevant-today.html

Other

Researchers Created Fake ‘Master’ Fingerprints to Unlock Smartphones.
https://motherboard.vice.com/en_us/article/bjenyd/researchers-created-fake-master-fingerprints-to-unlock-smartphones

CPJ Safety Advisory: Pegasus spyware used to target journalists, civil society.
https://cpj.org/2018/10/cpj-safety-advisory-pegasus-spyware-used-to-target.php

ลรณdลบ – the Office Eldorado in the centre of Poland.
http://www.outsourcingportal.eu/en/lodz-the-office-eldorado-in-the-centre-of-poland

EOF

Valuable News – 2018/11/24

The Valuable News weekly series is dedicated to provide summary about news, articles and other interesting stuff mostly but not always related to the UNIX or BSD systems. Whenever I stumble upon something worth mentioning on the Internet I just put it here so someone else can

Today the amount information that we get using various information streams is at massive overload. Thus one needs to focus only on what is important without the need to grep(1) the Internet everyday. Hence the idea of providing such information ‘bulk’ as I already do that grep(1).

UNIX

In Other BSDs for 2018/11/17.
https://www.dragonflydigest.com/2018/11/17/22071.html

Nixers Newsletter – 2018-11-16 – 101.
https://newsletter.nixers.net/entries.php#101

FreeBSD 12.0-RC1 Available.
https://lists.freebsd.org/pipermail/freebsd-stable/2018-November/090020.html

SoloBSD 11.2-STABLE-1117 based on HardenedBSD 1100056.8.
https://www.solobsd.org/index.php/2018/11/17/solobsd-11-2-stable-1117/

Celebrating 50 years of Unix.
https://unix50.org/

Distrowatch.com NetBSD 8.0 Review.
https://distrowatch.com/weekly.php?issue=20181119#netbsd

QEMU with Bridged tap0 Interface on FreeBSD Host.
https://thebsd.club/index.php?p=/discussion/8/qemu-with-a-bridged-tap0-interface-on-a-freebsd-host

Webmin module called ZFS Manager supports managing Boot Environments with beadm tool.
https://github.com/jonmatifa/zfsmanager/issues/28

Running Windows software on ARM with Wine.
http://www.osnews.com/story/30880/Running_Windows_software_on_ARM_with_Wine

Games on FreeBSD.
https://oshogbo.vexillium.org/blog/58/

Trying DragonFly BSD & FreeBSD On Intel Core i9 9900K.
https://www.phoronix.com/scan.php?page=article&item=intel-9900k-bsd

Playing Games on Pinebook on NetBSD-current arm64.
https://twitter.com/astr0baby/status/1065353771952336897

FreeBSD for Thanksgiving.
https://bwidawsk.net/blog/index.php/2018/11/freebsd-for-thanksgiving/

Goals for FreeBSD 13.
https://hackmd.io/Yv46aOjTS0eYk0m4YLXOTw#

Abandon Linux. Move to FreeBSD or Illumos.
https://www.adminbyaccident.com/politics/abandon-linux-move-freebsd-illumos/

OPNsense 18.7.8 Released.
https://forum.opnsense.org/index.php?topic=10366.0

NetworkManager mandatory on RHEL8 systems.
https://twitter.com/iMilnb/status/1065500360159170560

How to install and configure FreeBSD 11.2.
https://jacekkowalczyk.wordpress.com/2018/11/23/how-to-install-and-configure-freebsd-11-2/

BSD Now 273 – Thoughtful Episode.
https://www.jupiterbroadcasting.com/128146/a-thoughtful-episode-bsd-now-273/

Debugging rcctl in OpenBSD.
https://dev.to/nabbisen/debugging-rcctl-in-openbsd-3e70

In Other BSDs for 2018/11/24.
https://www.dragonflydigest.com/2018/11/24/22103.html

The nnn – The fastest terminal file manager ever written.
https://github.com/jarun/nnn

Hardware

An Excellent Machine.
POWER9 Based Talos II System from Raptor Computing Thoughts.
https://www.fitzsim.org/blog/?p=350

AMD Discloses Initial Zen 2 Details. 64 cores.
https://fuse.wikichip.org/news/1815/amd-discloses-initial-zen-2-details/

Pinebook – My First Few Surprising Hours With $99 Linux Laptop.
https://www.forbes.com/sites/jasonevangelho/2018/11/21/pinebook-my-first-few-surprising-hours-with-a-99-linux-laptop/amp/

Pinebook TN 720p versus Pinebook IPS 1080p.
https://twitter.com/armbian/status/1065713551401254912

ARM Delivers on Cortex A76 Promises: What it Means for 2019 Devices.
https://www.anandtech.com/show/13614/arm-delivers-on-cortex-a76-promises

Life

Edward Snowden Explains Blockchain to His Lawyer.
https://www.aclu.org/blog/privacy-technology/internet-privacy/edward-snowden-explains-blockchain-his-lawyer-and-rest-us

Going to university does not broaden the mind.
But going straight from school to work narrows it.
https://www.economist.com/science-and-technology/2018/11/24/going-to-university-does-not-broaden-the-mind

What’s Going On In Your Child’s Brain When You Read Them A Story?
https://www.kqed.org/mindshift/51281/whats-going-on-in-your-childs-brain-when-you-read-them-a-story

Other

Resistance is Real.
http://davemart.in/resistance/

 

EOF