Scott Dowdle's blog

Video: Fedora 23 LXC - Debian SID and CentOS 7 XFCE containers via X2Go

| | | | | |

Being a LONG-TIME OpenVZ user, I've been avoiding LXC some. Mainly because it wasn't quite done yet. I thought I'd give it a try on Fedora 23 to see how well it works... and the answer is surprisingly... fairly well. I made two screencast (without sound). I just used the lxc-{whatever} tools rather than virt-manager. Both containers just use the default network config (DHCP handed out via DNSMasq provided by libvirtd) which is NAT'ed private addresses... and were automatically configured and just worked.

Here's a list of all of the container OS Templates they offer on x86:

centos 6 amd64 default 20160205_02:16
centos 6 i386 default 20160205_02:16
centos 7 amd64 default 20160205_02:16
debian jessie amd64 default 20160204_22:42
debian jessie i386 default 20160204_22:42
debian sid amd64 default 20160207_11:58
debian sid i386 default 20160204_22:42
debian squeeze amd64 default 20160204_22:42
debian squeeze i386 default 20160204_22:42
debian wheezy amd64 default 20160204_22:42
debian wheezy i386 default 20160204_22:42
fedora 21 amd64 default 20160205_01:27
fedora 21 i386 default 20160205_01:27
fedora 22 amd64 default 20160205_01:27
fedora 22 i386 default 20160205_01:27
gentoo current amd64 default 20160205_14:12
gentoo current i386 default 20160205_14:12
opensuse 12.3 amd64 default 20160205_00:53
opensuse 12.3 i386 default 20160205_00:53
oracle 6.5 amd64 default 20160205_11:40
oracle 6.5 i386 default 20160205_11:40
plamo 5.x amd64 default 20160207_11:59
plamo 5.x i386 default 20160207_13:13
ubuntu precise amd64 default 20160205_03:49
ubuntu precise i386 default 20160205_03:49
ubuntu trusty amd64 default 20160205_03:49
ubuntu trusty i386 default 20160205_03:49
ubuntu trusty ppc64el default 20160201_03:49
ubuntu vivid amd64 default 20160205_03:49
ubuntu vivid i386 default 20160205_03:49
ubuntu wily amd64 default 20160205_03:49
ubuntu wily i386 default 20160205_03:49
ubuntu xenial amd64 default 20160205_03:49
ubuntu xenial i386 default 20160205_03:49

The first one shows the basics of LXC installation on Fedora 23 (per their wiki page on the subject) as well as creating a Debian SID container, getting it going, installing a lot of software on it including XFCE and most common desktop software... and accessing it via X2Go... and configuring XFCE the way I like it. This one was made on my home laptop and my network is a bit slow so I cut out a few long portions where packages were downloading and installing but everything else is there... yes including quite a bit of waiting for stuff to happen.


lxc-on-fedora-23-debian-sid-GUI-container.webm (25 MB, ~41.5 minutes)

The second video is very similar to the first but it is a remote ssh session with my work machine (where the network is way faster) and shows making a CentOS 7 container, installing XFCE and the same common desktop software, and then connecting to it via X2Go using an ssh proxy, and configuring XFCE how I like it. It was done in a single, un-edited take and includes a bit of waiting as stuff downloads and installs... so you get the complete thing from start to finish.


lxc-on-fedora-23-centos-7-GUI-container.webm (22.7 MB, ~31 minutes)

I recorded the screencasts with vokoscreen at 25 frames-per-second @ slightly larger than 720p resolution... and then converted them to webm (vp9) with ffmpeg @ 200kbit video. They compressed down amazing well. I recommend playback in full-screen as the quality is great. Enjoy!

Video: Alpine Linux-based LiveCD with OpenVZ kernel / tools

| | |

I recently encountered an Alpine Linux developer in the #openvz Freenode IRC channel who was working on an Alpine Linux-based LiveCD that uses the OpenVZ Legacy stable kernel and tools. If you aren't familiar with Alpine Linux (and I wasn't prior), it is a very minimal Linux distro that uses BusyBox. The LiveCD shafire (his IRC nick) created is ~ 100MB in size. Since I know OpenVZ very well, shafire asked me to lend a hand with testing.

I recorded a screencast that shows using the LiveCD from start to finish. Being very small, and needing storage space for containers, besides the LiveCD you really need a disk partition for permanent storage. The video shows booting the CD, a few manual steps that are needed to get a proper environment established, creating two containers, starting them, entering them and running some simple commands, shutting them down, and shutting down the host. I did all of the testing using a KVM virtual machine which made it easy for video capture. The video runtime is about 11 minutes and there was no editing of the video... everything is absolutely in real-time with no speedups. It is just THAT fast. :)

The embedded video is in webm/vp9 format and should play fine in contemporary versions of Firefox and Google Chrome. If you are using another browser and can't play the video, feel free to use the link under the video to download it and play with a recent version of the VLC media player. Looks like some video feeds that pick up my blog (planet.openvz.org for example) aren't embedding it properly so in that case, use the link under the video. That should work.

If you prefer to download and play in local media player, here's the direct URL:
alpine-based-openvz-livecd-demo.webm

For those interested in screencast creation and video conversion stuff, I used vokoscreen to capture my screen. It natively output a 175.9 MB .mkv file. I used ffmpeg to convert it to a webm file (vp9 video codec, no audio). The resolution is > 480p and the quality is very good... but amazingly, the filesize for the 11 minute video is only 1.7 MB. I guess ffmpeg / vp9 are awesome at comrpession of this genre of video. I set an upper limit of 200 Kbit for the video bitrate but using a variable bitrate it was able to greatly reduce the bitrate for the bulk of the video.

SSL Certificate and Future Developments

| |

The topic of the BozemanLUG meeting tonight is the Let's Encrypt project. Today I got an SSL certificate for this site from Let's Encrypt and I would like to encourage everyone to use the https version of this site. Your browser should love the new certificate and automatically accept it.

Ghosts of SSL Certs Past
I have used a free start.com SSL cert but it expired. Since then I've used a self-signed one as everything I do on the site is over https since I want to avoid getting my admin account credentials sniffed out over plain-text... but asking the rest of the world to accept my self-signed SSL cert? That's just too much.

Now that I have a good cert, I might force https at some point but not yet.

Future Developments
This site is ancient. The software running this site is ancient... and the distro it is running on is ancient. I hope to change that sometime after the new year. The limiting factor was a lack of public IP addresses... as I wanted to create a new OpenVZ container with newer stuff on a different IP address. In January we should have 5 additional IP addresses and I can at least get started on a new site while leaving this one running until the new one is ready. I'm not even going to guess when I'll be done enough with the new site so this old one can go away, but hopefully sometime in 2016. :)


Video: Raspberry Pi Zero

| |

Wow. $5. No built in networking but hey. I wonder if I can find a copy of the magazine?

For those with iFrame issues, here is the direct YouTube link:
https://www.youtube.com/watch?v=NFFQmdUc5Vg

Video: systemd Status Report 2015

| |

Did you know there was a systemd conference? Well there is... and it was even held recently... and the videos from it were published rather quickly. Here is Lenny giving a status update. Enjoy! The first 10.5 minutes are announcements so skip to 10:30 to get to the start of the actual talk.

For those who are iframe impared, here's the direct youtube link:
https://www.youtube.com/watch?v=I4AAjEaTehk

Video: LabX and the GUI web-based desktop

| | |

I signed up for a free service a few weeks back named LabX. I don't remember where I learned about it... some article I saw posted on LXer I think. Anyway... today I got an email invite from them, signed up for an account and gave it a try.

To be honest I don't know much about it yet and I don't know exactly what it is for and what to do with it... but one this is for sure, I like virtualization and remoting protocols... so it is right up my alley. After creating an account I logged in. Turns out the email address you registered with is your username although that isn't exactly clear from the various screens. Once logged in I was able to start and access a virtual environment that was listed as "Ubuntu 14.04". Connecting to it gave me a GUI desktop in my browser. XFCE / Xubuntu. I recorded a 15 minute screencast (no audio) of the session so enjoy.

Please note, the video is of my Firefox web-browser running on my local desktop and the shown browser tab is my connection to the remote GUI container. The raw video was 1276x1373 resolution and 566.7 MB in size (in .mkv format) but I used ffmpeg to resize it to 720x755 @ 400Kbit so it is now 13.8 MB (in webm format). Much smaller and a little blurry but much better for web streaming.

If you prefer to download and play in local media player, here's the direct URL:
LabX-Xubuntu-1404-web-desktop-demo.webm

Ready for an Intel-based Raspberry Pi alternative?

| |

Heard of the Up SoC yet? It is an alternative to the Raspberry Pi but Intel Atom-based. It's a quad-core 64-bit CPU that includes an Intel HD video chipset with hardware acceleration for H.264, HEVC (H.265 decode) and VP8. They have designed it to have a super-set of the Raspberry Pi's hardware feature set in the same form factor. It draws 2 watts of power over 5VDC. Cost? About 3x that of the Raspberry Pi. I wonder if the Atom CPU in question is closer in performance to a Desktop PC CPU than the quad-core ARM in the Raspberry Pi 2?

If you have working WebGL in your browser, you should see a nice, interactive, 3D model below. No flash-plugin required.

Video: Recent public talk with Linus Torvalds

| | | |

Linux Foundation head Jim Zemlin interviewed Linus Torvalds on stage at LinuxCon North America 2015. I thought it was worth sharing. Enjoy!

Here's a direct YouTube link for anyone with browser iframe issues: https://www.youtube.com/watch?v=5xKXHavHJ7U

Here is a summary of an even more recent public interview with Linus from LinuxCon Dublin. I hope a video of it is made available in the not-too-distant future.

Server Outage: Warren the Hero

| | |

Dirty MotherboardDirty MotherboardI doubt many people actually noticed but the server that runs this site (and about a dozen more) and my email... died sometime between 4:30 and 6:40 this morning. I texted (using Google Voice since I do NOT own/want a cell phone) Warren (since the server is in his house) about 6:38 and he responding back at 7:10 saying the server was dead. It would power on for about a second and then immediately turn off. It was full of dust bunnies so Warren cleaned it out and re-seated everything that might have had a loose connection... but still power-on failure. Warren opened up the power supply and cleaned it out. Inspecting both the motherboard and the power supply, there were no obviously bad components... no bad caps. Still no results.

Without a quick fix we decided to try to get a temporary system going... perhaps using a desktop computer with 4 SATA ports. 4 SATA ports are needed because the dead server has 4 hard drives that are in a Linux software RAID 5 configuration. Luckily Warren had access to a spare Dell OptiPlex 960 Core 2 Duo system with 8GB of RAM and 4 SATA ports. Many tower systems that have 2 hard drive bays come with 4 SATA ports so they can support 2 HDs and 2 optical drives. Getting the cables to go where they needed to go (both data and power) for loose drives seemed to work and for the time being the desktop power supply seems to be beefy enough to run all of the drives. Seeing as we run CentOS 6.x for OpenVZ... I was concerned that the network chipset would be too new... and for a little while that seemed to be the case... but Warren booted from a CentOS 6.7 LiveDVD and the network worked fine... so we knew it was a configuration issue from the previous hardware configuration. Turns out the NIC was detected as eth2 rather than eth0. While that could probably have been resolved by nuking a udev rule file somewhere, Warren just moved and edited the eth0 config file so it was eth2 and we were up and running again.

Dirty Power SupplyDirty Power SupplyWhile I do have backups (a couple of days old) and have previously researched a few cloud services (6sync and fastmail are on my radar) just in case, it is great to be back up after a few hours rather than having to worry about transferring a few hundred gigabytes of data before we are back up.

For the mid to long-term we haven't thought about where to go... and are just happy to be up and running again. Warren had it back up about 2 PM so he put a good 7 hours in today. Turns out Warren starts the Montanan Marathon early tomorrow morning, which he has been training all year for, so he wanted to get some rest today. I hope he does get some rest after saving our hobby server. Thanks Warren! I hope you do well in the run tomorrow buddy.

Video: Blender's new short film and ffmpeg vp9 test

| | | | |

About a month ago the Blender folks released a new film project named Cosmos Laundromat.

Two days ago the ffmpeg folks released version 2.8. I saw one of the changes was that for webm they are now defaulting to using the vp9 video codec and the opus audio codec. Previous releases defaulted to webm with vp8 and ogg.

I've been following vp9 for a few years now... and every once in a while I'd try the libvpx tools and ffmpeg's support for vp9... but it was never quite there yet for non-experts (me). With this release, I say that vp9 is very, very close to viable. The only problem is that the encoding speed still leaves a lot to be desired. For the best results, two pass encoding is required. Using a number of 1080p video sources in h.264 format (all of the Blender films downloaded from YouTube) and a contemporary Intel i7 CPU, I get a little over 100 Frames Per Second (FPS) on pass 1 and between 7 - 9 FPS on pass 2. With a video that is ~24 FPS (all my source videos) it takes a little over 3x realtime to encode them. Well, more because of the two passes. The more popular codecs in ffmpeg are better than real time including vp8/ogg-based webm. Of course those numbers are all highly variable depending on the source material and the hardware you run it on... but you get the idea.

Ok, so encoding speed isn't so great. I'm sure that will get better over time. I'd expect it to be cut in half sometime over the next couple of years... if we are lucky... that and faster hardware... and perhaps GPU encoding support in newer hardware.

But anyway, enough about the encoding speed, how is the quality? Well, see for yourself. I think it truly lives up to the 1/2 the filesize for the same quality compared to vp8/ogg or h.264. I embed Cosmos Laundromat above then directly link to additional ones below if you want more. vp9/opus webm files should play in contemporary versions of Firefox, Google Chrome, Microsoft IE if you have some plugin installed (haven't tried it) and supposedly coming soon to Microsoft's Edge browser in Windows 10. Safari? Probably never. Play in your browser or right-click download and play with your preferred media player.

Don't blame any download / playback retrieval slowness on vp9... it's probably a lack of bandwidth on the server side... so be patient and pause it until some is buffered. Moving around the playhead should work fairly well unless bandwidth is an issue.

Full screen that if you want. Doesn't that look great? It's 720 x 302 resolution with 400 kbit video and 96 kbit audio. That's why all of the files have 496k in the name. So that's like 62KB / second transfer. Pretty good quality huh?

More vp9 re-encodes with ffmepg 2.8:

2006-Elephants_Dream-496k.webm (38.4MB, 10:53)
2008-Big_Buck_Bunny-496k.webm (31.8 MB, 9:56)
2010-Sintel-496k.webm (52.9 MB, 14:48)
2012-Tears_of_Steel-496k.webm (43.3 MB, 12:14)
2013-Caminandes-Gran_Dillama-496k.webm (8.7 MB, 2:26)

Want to know how it works on Hollywood / live action movies? Here's the trailer for the upcoming film, "The Martian". I don't think I'll get into any trouble for posting a trailer, right? Again, 720 x 405 @ 496 kbit. The black bars were in the original and I didn't remove them.

2015-The_Martian-Trailer-496k.webm (11.5 MB, 3:17)

Want to give vp9 a try? I doubt many distros have packages for ffmpeg 2.8 yet but you can download the static .tar.xz from ffmpeg's site and run it on most Linux distros. That's what I did. I'll leave finding the URL up to the reader because it will certainly change.

So far as encoding goes, I didn't do anything fancy. Just something like:

ffmpeg28 -y -i source.mp4 -f webm -vf scale=720:-1 -b:v 400k -an -pass 1 output.webm.pass1 ;
ffmpeg28 -y -i source.mp4 -f webm -vf scale=720:-1 -b:v 400k -b:a 96k -pass 2 output.webm

I took the static ffmpeg binary and plopped it in ~/bin/ffmpeg28 so I could easily tell it apart from the stock ffmpeg binary. Enjoy!

Syndicate content