Jonathan Dieter: Small file performance on distributed filesystems – Round 2

Share Button



View from a bench

Last year, I ran some benchmarks on the GlusterFS, CephFS and LizardFS distributed filesystems, with some interesting results. I had a request to redo the test after a LizardFS RC was released with a FUSE3 client, since it is supposed to give better small file performance.

I did have a request last time to include RozoFS, but, after a brief glance at the documentation, it looks like it requires a minimum of four servers, and I only had three available. I also looked at OrangeFS (originally PVFS2), but it doesn’t seem to provide replication, and, in preliminary testing, it was over ten times slower than the alternatives. NFS was tested and its results are included as a baseline.

I once again used compilebench, which was designed to emulate real-life disk usage by creating a kernel tree, reading all the files in the tree, simulating a compile of the tree, running make clean, and finally deleting the tree.

The test was much the same as last time, but with one important difference. Last time, the clients were running on the same machines that were running the servers. LizardFS benefited hugely from this as it has a “prefer local chunkserver” feature that will skip the network completely if there’s a copy on the local server. This time around, the clients were run on completely separate machines from the servers, which removed that advantage for LizardFS, but which I believe is a better reflection on how distributed filesystems are generally used.

I would like to quickly note that there was very little speed difference between LizardFS’s FUSE2 and FUSE3 clients. The numbers included are from the FUSE3 client, but they only differed by a few percentage points from the FUSE2 client.

A huge thank you to my former employer, the Lebanon Evangelical School for Boys and Girls, for allowing me to use their lab for my test. The test was run on nine machines, three running as servers and six running the clients. The three servers operated as distributed data servers with three replicas per file. Each client machine ran five clients, giving us a simulated 30 clients.

All of the data was stored on XFS partitions on SSDs for speed, except for CephFS, which used an LVM partition with Bluestore. After running the benchmarks with one distributed filesystem, it was shut down and its data deleted, so each distributed filesystem had the same disk space available to it.

The NFS server was setup to export its shares async (for speed). The LizardFS clients used the recommended mount options, while the other clients just used the defaults (the recommended small file options for GlusterFS caused the test to hang). CephFS was mounted using the kernel module rather than the FUSE filesystem.

Before running the 30 clients simultaneously, I ran the test ten times in a row on a single client, to get a single client baseline. So let’s look at this performance (click for the full-size chart):


So, apart from the simulated “make clean”, CephFS dominated these tests. It even managed to beat out NFS on everything except clean and delete, and delete was within a couple of seconds. LizardFS and GlusterFS were close in most of the tests with LizardFS taking a slight lead. GlusterFS, though, was much slower than the alternatives when it came to the delete test, which is consistent with last year’s test.

Next, let’s look at multiple-client performance. With these tests, I ran 30 clients simultaneously, and, for the first four tests, summed up their speeds to give me the total speed that the server was giving the clients. Because deletions were running simultaneously, I averaged the time for the final test.


Ok, just wow. If you’re reading and writing large numbers of small files, NFS is probably still going to be your best bet. It was over five times faster than the competition in writing and over twice as fast in reading. The compile process is where things started to change, with both CephFS and LizardFS beating NFS, and LizardFS took a huge lead in the clean test and delete test. Interestingly, it took just 50% longer for LizardFS to delete 30 clients’ files compared with a single client’s files.

After CephFS’s amazing performance in the single-client mode, I was looking forward to some incredible results, but it really didn’t scale as well as I had hoped, though it was still competitive with the other distributed filesystems. Once again, LizardFS has shown that when it comes to metadata operations, it’s really hard to beat, but its aggregate read and write performance were disappointing. And, once again, GlusterFS really struggled with the test. I wish it would have worked with the performance tuning for small files enabled, as we might have seen better results.

Powered by WPeMatico

Share Button

Guillaume Kulakowski: Migration vers la ZiGate de mes équipements Xiaomi

Share Button

J’ai récemment fait l’acquisition d’une ZiGate. En effet, comme décrit lors de la présentation de mon installation domotique, je possédais jusqu’à présent une Gateway Aqara de Xiaomi pour gérer le protocole ZigBee. De mon point, elle souffre de 3 problèmes : Tout d’abord, elle est très « ZigBee by Aqara by Xiaomi » et donc pas totalement ouverte […]

Cet article Migration vers la ZiGate de mes équipements Xiaomi est apparu en premier sur Guillaume Kulakowski’s blog.

Powered by WPeMatico

Share Button

Ben Cotton: FPgM report: 2018-29

Share Button

Inspired by bex’s “Slice of cake” updates, I present to the community this report of what has happened in Fedora Program Management this week.

Schedule

  • REMINDER — Self-Contained Change submission deadline is July 24.
  • REMINDER — Software string freeze is July 31.

Changes

Announced

Submitted to FESCo

Approved by FESCo

I will be on PTO next week, but I will be checking in daily to shepherd last-minute change submissions.

The post FPgM report: 2018-29 appeared first on Blog Fiasco.

Powered by WPeMatico

Share Button

Fedora Magazine: 4 cool new projects to try in COPR for July 2018

Share Button

COPR is a collection of personal repositories for software that isn’t carried in Fedora. Some software doesn’t conform to standards that allow easy packaging. Or it may not meet other Fedora standards, despite being free and open source. COPR can offer these projects outside the Fedora set of packages. Software in COPR isn’t supported by Fedora infrastructure or signed by the project. However, it can be a neat way to try new or experimental software.

Here’s a set of new and interesting projects in COPR.

Hledger

Hledger is a command-line program for tracking money or other commodities. It uses a simple, plain-text formatted journal for storing data and double-entry accounting. In addition to the command-line interface, hledger offers a terminal interface and a web client that can show graphs of balance on the accounts.

Installation instructions

The repo currently provides hledger for Fedora 27, 28, and Rawhide. To install hledger, use these commands:

sudo dnf copr enable kefah/HLedger
sudo dnf install hledger

Neofetch

Neofetch is a command-line tool that displays information about the operating system, software, and hardware. Its main purpose is to show the data in a compact way to take screenshots. You can configure Neofetch to display exactly the way you want, by using both command-line flags and a configuration file.

Installation instructions

The repo currently provides Neofetch for Fedora 28. To install Neofetch, use these commands:

sudo dnf copr enable sysek/neofetch
sudo dnf install neofetch

Remarkable

Remarkable is a Markdown text editor that uses the GitHub-like flavor of Markdown. It offers a preview of the document, as well as the option to export to PDF and HTML. There are several styles available for the Markdown, including an option to create your own styles using CSS. In addition, Remarkable supports LaTeX syntax for writing equations and syntax highlighting for source code.

Installation instructions

The repo currently provides Remarkable for Fedora 28 and Rawhide. To install Remarkable, use these commands:

sudo dnf copr enable neteler/remarkable
sudo dnf install remarkable

Aha

Aha (or ANSI HTML Adapter) is a command-line tool that converts terminal escape sequences to HTML code. This allows you to share, for example, output of git diff or htop as a static HTML page.

Installation instructions

The repo currently provides aha for Fedora 26, 27, 28, and Rawhide, EPEL 6 and 7, and other distributions. To install aha, use these commands:

sudo dnf copr enable scx/aha
sudo dnf install aha

Powered by WPeMatico

Share Button

4 cool new projects to try in COPR for July 2018

Share Button

COPR is a collection of personal repositories for software that isn’t carried in Fedora. Some software doesn’t conform to standards that allow easy packaging. Or it may not meet other Fedora standards, despite being free and open source. COPR can offer these projects outside the Fedora set of packages. Software in COPR isn’t supported by Fedora infrastructure or signed by the project. However, it can be a neat way to try new or experimental software.

Here’s a set of new and interesting projects in COPR.

Hledger

Hledger is a command-line program for tracking money or other commodities. It uses a simple, plain-text formatted journal for storing data and double-entry accounting. In addition to the command-line interface, hledger offers a terminal interface and a web client that can show graphs of balance on the accounts.

Installation instructions

The repo currently provides hledger for Fedora 27, 28, and Rawhide. To install hledger, use these commands:

sudo dnf copr enable kefah/HLedger
sudo dnf install hledger

Neofetch

Neofetch is a command-line tool that displays information about the operating system, software, and hardware. Its main purpose is to show the data in a compact way to take screenshots. You can configure Neofetch to display exactly the way you want, by using both command-line flags and a configuration file.

Installation instructions

The repo currently provides Neofetch for Fedora 28. To install Neofetch, use these commands:

sudo dnf copr enable sysek/neofetch
sudo dnf install neofetch

Remarkable

Remarkable is a Markdown text editor that uses the GitHub-like flavor of Markdown. It offers a preview of the document, as well as the option to export to PDF and HTML. There are several styles available for the Markdown, including an option to create your own styles using CSS. In addition, Remarkable supports LaTeX syntax for writing equations and syntax highlighting for source code.

Installation instructions

The repo currently provides Remarkable for Fedora 28 and Rawhide. To install Remarkable, use these commands:

sudo dnf copr enable neteler/remarkable
sudo dnf install remarkable

Aha

Aha (or ANSI HTML Adapter) is a command-line tool that converts terminal escape sequences to HTML code. This allows you to share, for example, output of git diff or htop as a static HTML page.

Installation instructions

The repo currently provides aha for Fedora 26, 27, 28, and Rawhide, EPEL 6 and 7, and other distributions. To install aha, use these commands:

sudo dnf copr enable scx/aha
sudo dnf install aha

Powered by WPeMatico

Share Button

Matthias Clasen: Flatpak – a look behind the portal

Share Button

Flatpak allows sandboxed apps to interact with the rest of the system via portals. Portals are simply D-Bus services that are designed to be safe to expose to untrusted apps.

Principles

There are several principles that have guided the design of the existing portals.

 Keep the user in control

To achieve this, most portals  will show a dialog to let the user accept or deny the applications’ request. This is not a hard rule — in some cases, a dialog is just not practical.

Avoid yes/no questions

Direct questions about permissions tend to be dismissed without much thought, since they get in the way of the task at hand. Therefore, portals avoid this kind of question whenever possible and instead just let the user get on with the task.

For example, when an app is requesting to open a file on the host, we just present the user with a fille chooser. By selecting a file, the user implicitly grants the application access to the file. Or he can cancel the file selection and implicitly deny the applications’ request.

Don’t be annoying

Nothing is worse than having to answer the same question over and over. Portals make use of a database to record previous decisions and avoid asking repeatedly for the same thing.

Practice

The database used by portals is called the permission store. The permission store is organized in tables, with a table for each portal that needs one. It has a D-Bus api, but it is more convenient to explore it using the recently added flatpak commands:

flatpak permission-list
flatpak permission-list devices
flatpak permission-list desktop-used-apps video/webm

The first command will list all permissions in all tables, the second will show the content of the “devices” table, and the last one will show just the row for video/webm in the “desktop-used-apps” table.

There are also commands that deal with permissions on a per-application basis.

flatpak permission-show org.gnome.Epiphany
flatpak permission-reset org.gnome.Epiphany

The first command will show all the permissions that apply to the application, the second will remove all permissions for the application.

And more…

The most important table in the permission store is the “documents” table, where the documents portal stores information about host files that have been exported for applications. The documents portal makes the exported files available via a fuse filesystem at

/run/user/1000/doc

A useful subdirectory here is by-app, where the exported files are visible on a per-application bases (when setting up a sandbox, flatpak makes only this part of the document store available inside the sandbox).

It is instructive to browse this filesystem, but flatpak also has a dedicated set of commands for exploring the contents of the documents portal.

flatpak document-list
flatpak document-list org.gnome.Epiphany

The first command lists all exported files, the second shows only the files that are exported for an individual application.

flatpak document-info $HOME/example.pdf

This command shows information about a file that is exported in the document portal, such as which applications have access to it, and what they are allowed to do.

Lastly, there are document-export and document-unexport commands that allow to add or remove files from the document portal.

Summary

If you want to explore how portals work, or just need to double-check which files an app has access to, flatpak has tools that let you do so conveniently.

Powered by WPeMatico

Share Button

Fedora Community Blog: [Week 9] GSoC Status Report for Fedora App: Amitosh

Share Button

This is Status Report for Fedora App filled by participants on a weekly basis.

Status Report for Amitosh Swain Mahapatra (amitosh)

  • Fedora Account: amitosh
  • IRC: amitosh (found in #fedora, #fedora-dotnet, #fedora-summer-coding, #fedora-commops)
  • Fedora Wiki User Page: amitosh

Tasks Completed

Calendar Subscription Manager

You can now subscribe to a particular calendar from the Fedora app!. No more missed meetings. We also take care of converting the date and time to the local timezone so that you get the reminders at the correct time.

Subscribing to a calendar automatically syncs all events for a calendar on FedoCal to the device calendar. If the device calendar syncs with a sync provider such as Google calendar, you will get the notification in all synced devices. If a meeting is deleted or removed, the reminder will dismissed as well.

Help wanted: People living in DST, we don’t know how it will work during time shifts. Internally we handle everything as GMT, so we guess it should be fine.

Pull request: #103

Highlighting new posts on Fedora Magazine and Community Blog

We now highlight new posts on Magazine and Social to inform the users about new content since their last visit.

Pull request: #98

Bookmarks

You can now bookmark an article in Fedora magazine. If you find an interesting article and don’t want to miss it. Bookmark it. We will store it for you, safely. You can access your bookmarks from the more menu, anytime.

What’s Happening

Improved backend for FedoCal storage

The current storage backend, though simple, performs too much of syncronous work. This has resulted in severe frame drops. I am currently working on a new storage backend that will (hopefully) allevate these issues.

Caching articles and Offline Reading

We planned some performance optimizations for Magazine to improve the load time and working to make bookmarked articles available offline.

FMN Notifications

FMN is the Fedora notifications hub. It provides a single place for all applications using fedmsg to notify users of events using email or IRC. We plan to integrate this with the Fedora app as an opt-in addition.

[Help wanted: This requires hacking the FMN web service, please help me with docs for the existing (but dormant) Android backend or the SSE backend]

What happened to Week 7 and 8?

The first half of the Week 7 was a planned leave owing to my semester registrations, fee payment and other college stuff which required me to travel back to the college. Paper work for Flock visa stuff took few more days, which was not planned. Thankfully, the lead we achieved in the 1st month covered this.

Still, they were not completely unproductive. It was the time when I devoted time to access the performance of code we have built till date and discover issues with them.

Please send in your feedback at amitosh@fedoraproject.org

The post [Week 9] GSoC Status Report for Fedora App: Amitosh appeared first on Fedora Community Blog.

Powered by WPeMatico

Share Button

Harish Pillay 9v1hp: ssh tunnel via userspace systemd service

Share Button

[image above is a screenshot of 0pointer.de – in place of a systemd logo]

This is short how-to on setting up a systemd service that is run from a user account.

In the /etc/systemd/system directory:

a) create a service file that implements the service. In my case, I wanted to set up a service that would be started at boot and run under my userid. This service is to set up a ssh tunnel to a system that is on another, external network.

$ cat /etc/systemd/system/ssh-tunnel.service
[Unit]
Description=ssh tunnel
After=network.target

[Service]
User=harish
Group=harish
Type=simple
WorkingDirectory=/home/harish
ExecStart=/home/harish/sshpipe.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

$

b) This is a service that is to be started after the network.target is reached – obviously, no network, nothing happens. Then the section [Service] has details as to who’s UID it is to be invoked. Included are the User, Group, and WorkingDirectory details. The file that is to be run when this service is started is called sshpipe.sh and that is also indicated.

# ps -ef|grep ssh
root       898   812  0 Jul17 ?        00:00:00 /usr/libexec/sssd/sssd_ssh --uid 0 --gid 0 --logger=files
root      1333     1  0 Jul17 ?        00:00:00 /usr/sbin/sshd -D
harish   30062     1  0 16:30 ?        00:00:00 /bin/sh /home/harish/sshpipe.sh
harish   30063 30062  0 16:30 ?        00:00:00 /usr/bin/ssh -N -R 2048:localhost:22 harish@10.10.10.10

c) As can be seen above, the sshpipe.sh is invoked under my UID and in this case, because I am have set it up as passwordless ssh connection (which you have set up earlier), the command will work seamlessly.

d) The file sshpipe.sh is as follows:

$ cat sshpipe.sh 
#!/bin/sh
/usr/bin/ssh -N -R 2048:localhost:22 harish@10.10.10.10
$

Essentially, the command says that is run (in my case a Red Hat Enterprise Linux 7.5 system running in an Intel NUC RYBDWi35) is connecting to port 2048 on the remote host 10.10.10.10 under my UID and linking back up port 22 on this NUC. So, when I log into 10.10.10.10, I can run:

$ ssh -p 2048 localhost

and I am back into the NUC.

e) So, once the systemd service file, in this case, ssh-tunnel.service is created, you will have to enable it and start it.

# systemctl enable ssh-tunnel.service
Created symlink from /etc/systemd/system/multi-user.target.wants/ssh-tunnel.service to /etc/systemd/system/ssh-tunnel.service.
# systemctl start ssh-tunnel.service
# systemctl status ssh-tunnel.service -l
● ssh-tunnel.service - ssh tunnel back
   Loaded: loaded (/etc/systemd/system/ssh-tunnel.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-07-19 19:13:50 +08; 9s ago
 Main PID: 421 (sshpipe.sh)
    Tasks: 2
   CGroup: /system.slice/ssh-tunnel.service
           ├─421 /bin/sh /home/harish/sshpipe.sh
           └─436 /usr/bin/ssh -N -R 2048:localhost:22 harish@10.10.10.10

Jul 19 19:13:50 r7 systemd[1]: Started ssh tunnel.
Jul 19 19:13:50 r7 systemd[1]: Starting ssh tunnel...

That’s about it.

I really do like systemd for the elegance provided.

[Update based on comments on g+: https://plus.google.com/u/0/+HarishPillay/posts/527ieimh6Tv%5D

In this instance, since the shell script has exactly one line, it can be placed in the unit file where it refers to the script. The updated file is as follows:

# cat ssh-tunnel.service 
[Unit]
Description=ssh tunnel
After=network.target

[Service]
User=harish
Group=harish
Type=simple
WorkingDirectory=/home/harish
ExecStart=/usr/bin/ssh -N -R 2048:localhost:22 harish@10.10.10.10
Restart=on-failure

[Install]
WantedBy=multi-user.target

[root@r7 system]#

The reason I had the script was because it was something I have been using for a long time – predates systemd and since I wanted to make sure that I could work this tunnel with systemd, I just kept the script.

Thanks to +Christoph Wickert!

Powered by WPeMatico

Share Button

Ken Dreyer: “What problem are we trying to solve?”

Share Button


I was in a meeting with some folks recently where the leader opened the floor for Suggestions.

At this point the meeting got very quiet. Not everyone in the group is an introvert, but everyone felt the awkwardness and no one wanted to speak up and sound dumb.

I’m not sure what was happening in everyone else’s minds at that point, but for myself, I wasn’t even sure what we were talking about. We were all staring at a blank whiteboard, going to write down “ideas” about … something.

I finally asked:

“Man I’m sorry, I’m just not following here. What problem are we trying to solve?”

The leader next listed out three problems that he saw as important. We wrote them down and it kicked the conversation into gear. People started engaging with the list, asking, “Is that a big problem?” or  “Here’s how I see that problem manifesting.”

Sometimes brainstorming sessions or conversation-starters can be too open. We want to not leave anybody out, and seek ideas from everyone, so we cast such a wide fishing net that it’s awkward. The conscious people are wracking their brains trying to figure out what the leader is asking for on this fishing expedition.

Next time you’re in a meeting that’s really hard to follow, and several folks are falling silent, don’t assume it’s “just you”. Throw yourself under the bus in a whimsical way and ask aloud:

“Sorry, I’m lost. What problem are we trying to solve here?”

The next 20 minutes will be a lot more interesting!

Powered by WPeMatico

Share Button

Christian F.K. Schaller: An update from Fedora Workstation land

Share Button

Battery life
I was very happy to see that Fedora Workstation 28 in the Phoronix benchmark got the best power consumption on a Dell XPS 13. Improving battery life has been a priority for us and Hans de Goede has been doing some incredible work so far. And best of all; more is to come :). So if you want great battery life with Linux on your laptop then be sure to be running Fedora on your laptop! On that note and to state the obvious, be aware that Fedora Workstation adoption rates are actually a major metric for us to decide where to put our efforts, so if we see good growth in Fedora due to people enjoying the improved battery life it enables us to keep investing in improving battery life, if we don’t see the growth we will need to conclude people don’t care that much and more our investment elsewhere.

Desktop remoting under Wayland
The team is also making great strides with desktop remoting under Wayland. In Fedora Workstation 29 we will have the VNC based GNOME Shell integrated desktop sharing working under Wayland thanks to the work done by Jonas Ådahl. It relies on PipeWire to share you Wayland session over VNC.
On a similar note Jan Grulich, Tomas Popela and Eike Rathke has been working on enabling Wayland desktop sharing through Firefox and Chromium. They are reporting good progress and actually did a video call between Firefox and Chromium last week, sharing their desktops with each other. This is enables by providing a PipeWire backend for both Firefox and Chromium. They are now working on cleaning up their patches and prepare them for submission upstream. We are also looking at providing a patched Firefox in Fedora Workstation 28 supporting this.

PipeWire
Wim Taymans talked about and demonstrated the latest improvements to PipeWire during GUADEC last week. He now got a libpulse.so drop in replacement that allows applications like Totem and Rhythmbox to play audio through PipeWire using the PulseAudio GStreamer plugin as Pipewire now provides a libpulse.so drop in replacement. Wim also keeps improving the Jack support in PipeWire by testing Jack applications one by one and fixing corner cases as he discovers them or they are reported by the Linux pro-audio community. We also ended up ordering Wim a Sony HT-Z9F soundbar for testing as we want to ensure PipeWire has great support for passthrough, be that SPDIF, HDMI or Bluetooth. The HT-Z9F also supports LDAC audio which is a new high quality audio format for Bluetooth and we want PipeWire to have full support for it.
To accelerate Pipewire development and adoption for audio we also decied to try to organize a PipeWire and Linux Audio hackfest this fall, with the goal of mapping our remaining issues and to try to bring the wider linux audio community together. So I am very happy that Arun Raghavan of PulseAudio fame agreed to be one of the co-organizer of this hackfest. Anyone interested in attending the PipeWire 2018 hackfest either add yourself to the attendee list or contact me (contact information can be found through the hackfest page) and I be happy to add you. The primary goal is to have developers from the PulseAudio and JACK communities attend alongside Wim Taymans and Bastien Nocera so we can make sure we got everything we need on the development roadmap and try to ensure we all pull in the same direction.

GNOME Builder
Christian Hergert did an update during GUADEC this year on GNOME Builder. As usual a ton of interesting stuff happening including new support for developing towards embedded devices like the upcoming Purism phone. Christian in his talk mentioned how Builder is probably the worlds first ‘Container Native IDE’ where it both is being developed with being packaged as a Flatpak in mind, but also developed with the aim of creating Flatpaks as its primary output. So a lot of effort is being put into both making sure it works well being inside a container itself, but also got all the bells and whistles for creating containers from your code. Another worthwhile point to mention is that Builder is also one of the best IDEs for doing Rust development in general!

Game mode in Fedora
Feral Interactive, one of the leading Linux game companies, released a tool they call gamemode for Linux not long ago. Since we want gamers to be first class citizens in Fedora Workstation we ended up going back and forth internally a bit about what to do about it, basically discussing if there was another way to resolve the problem even more seamlessly than gamemode. In the end we concluded that while the ideal solution would be to have the default CPU governor be able to deal with games better, we also realized that the technical challenge games posed to the CPU governor, by having a very uneven workload, is hard to resolve automatically and not something we have the resources currently to take a deep dive into. So in the end we decided that just packaging gamemode was the most reasonable way forward. So the package is lined up for the next batch update in Fedora 28 so you should soon be able to install it and for Fedora Workstation 29 we are looking at including it as part of the default install.

Powered by WPeMatico

Share Button