TrueNAS CORE/Enterprise/SCALE Middleware Git Repository

Overview

TrueNAS CORE/Enterprise/SCALE main source repo

Want to contribute or collaborate? Join our Slack instance.

IMPORTANT NOTE:

This is the master branch of freenas, which is used for the creation and testing of TrueNAS CORE / Enterprise and TrueNAS SCALE Nightly builds. Submit Pull Requests here if you want to get changes into the next major release of TrueNAS. To build this source repo, checkout https://github.com/freenas/build for CORE/Enterprise and https://github.com/truenas/truenas-build for SCALE

Pull Request Instructions / Jenkins Commands

When submitting a pull-request, Jenkins will attempt to verify the changes to ensure it does not break our builds and/or passes QA tests.

The following commands may be used to interact with that service:

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

If the build fails for other various reasons you can rebuild.

"retest this please" to start a new build
"retest this please CLEAN" to start a new build, non-incremental
Comments
  • Bug #10794:

    Bug #10794:

    Added UI to System -> Boot which allows the user to tag a Boot Environment as "Keep" As keep tag is set it calls be = Update.FindClone("default"); Update.CloneSetAttr(be, keep = True) and handled accordingly.

    opened by rohitkeshri1986 32
  • Add the mii monitoring during bond creation

    Add the mii monitoring during bond creation

    This PR add the miimon polling rate during the creation of the bond interface. The missing miimon configuration prevent the failover of the interface.

    This fix can be improved, the selection of monitoring and monitoring rate is now static, an addition to the UI can be useful to select the wanted monitoring type (ARP or MII), polling rate and/or arp target

    This issue is referenced here in the forum

    opened by MatteoManzoni 20
  • fix(snmp): Large SNMP improvement

    fix(snmp): Large SNMP improvement

    • Use AgentX instead of pass command to simplify code and improve performance
    • Update the structure of MIB file to follow conventions for table
    • Expose zvols state

    Tickets: #24402, #25734

    opened by themylogin 18
  • NAS-107639 / 21.02 / Set default compression to zstandard

    NAS-107639 / 21.02 / Set default compression to zstandard

    This is a draft PR, investigating if there are any side effect of setting zstandard as the default compression algorithm on pool creation (which is, by default, inherited by created datasets).

    Notes:

    • I'm not very sure about the need to manually set the featureflag in case of zstd

    edit, after testing and checking things

    • This shouldn't apply to the boot pool, as that one isn't created using the middleware afaik (middleware specifically lists these as being mounted under /mnt, which the bootpool isn't)
    • Did some performance tests on an 2c/4t intel pentium CPU, 10gbe and 3x2disk mirrors. I don't think this is going to cause any significant slowdown on less-powerfull systems
    • pools created from scratch on 12, aren't compatible with 12 anyhow in a lot of cases, so this wouldn't cause significant (new) compatibility issues (you can't import a pool created in TrueNAS 12/20.10 in 11 afaik)

    Some actual data: General note: These numbers are supposed to be bottlenecked mostly by CPU and/or RAM. However they are not made to be a representation for performance, they are supposed to be used as a comparative reference only, meant to give a vague idea of performance delta. If you see weird results, it mostly is due to the test being CPU bottlenecked or test environment issues.

    Allan Jude has done further research on performance here: https://docs.google.com/spreadsheets/d/1TvCAIDzFsjuLuea7124q-1UtMd0C9amTgnXm2yPtiUQ/edit#gid=0

    His number are more based on a real-world hardware scenario. I highly suggest going through them.

    Note about random performance: Random has been set to an 8K "extremely low" recordsize and mixed blocksizes.


    Sequential Read:

    image

    image


    Sequential Write


    image image


    Sequential Read-Write


    image

    image


    Random Read


    image

    image


    Random Write


    image image


    Random Read-Write


    image image


    RAWR DATA

    Compression Algorithm Performance.xlsx

    test_results_1577651989.terse.txt

    Test script: https://github.com/Ornias1993/zfs-compression-test

    Note: For the IO slides, I've been lazy and column K is actually iops instead of bandwidth ;)

    opened by Ornias1993 16
  • NAS-118328 / 22.12 / Do not encrypt ix-applications dataset

    NAS-118328 / 22.12 / Do not encrypt ix-applications dataset

    This PR adds changes to not allow encrypting ix-applications dataset even if parent is encrypted and also not allow migrating ix-applications dataset to another pool if source is encrypted as this results in various edge cases which after discussing with Caleb we have decided not to handle.

    opened by sonicaj 15
  • NAS-115542 / 22.12 / fix uuidd service

    NAS-115542 / 22.12 / fix uuidd service

    2 issues.

    1. uuidd user/group don't exist so override the systemd unit file with nobody/nogroup since we don't need or use this service. If a user manually starts this service, it will at least start with the overridden user/group information.
    2. mask uuidd.service and uuidd.socket because, again, we don't need or use it
    opened by yocalebo 14
  • Add AlertServices

    Add AlertServices

    Small purpose.

    Two new alert services :

    • ~AnyWebhookAlerteService : A way to call any arbitrary webhook to send alertes~
    • FreeTelecomAlerteService : Alert service specifically designed to use the SMS api of the client of Free Telecom https://mobile.free.fr

    A Pull Request introducing the alert servie exist into the WebUI.

    opened by zorglube 14
  • let middleware handle the process of mounting geli providers

    let middleware handle the process of mounting geli providers

    Redmine: https://redmine.ixsystems.com/issues/31035

    Much more detail in that redmine ticket but I will summarize here.

    We are auto-mounting geli providers early in the boot process. While this isn't necessarily a problem on a single-node system, this causes problems for all TrueNAS HA appliances. Functionality for managing the destruction/mounting/decrypting of geli providers has been added to the webUI and middleware so I'm disabling this section in rc.conf.local

    opened by yocalebo 14
  • NAS-116385 / 22.12 / Hyper-V enlightenments

    NAS-116385 / 22.12 / Hyper-V enlightenments

    Add support for Hyper-V enlightenments which are important part of running Windows VMs on. I tried to follow TrueNAS philosophy of keeping it simple and hence the single flag to enable most commonly supported flags. Other option could be adding a option per each Hyper-V feature but that would quickly clutter the UI.

    This is my first PR for TrueNAS so please instruct me if something is missing/incorrect.

    no-time-tracked 
    opened by heppu 13
  • NAS-113937 / 22.02 / Improve executing commands with a user context implementation

    NAS-113937 / 22.02 / Improve executing commands with a user context implementation

    This PR adds changes to use python to change user context in a process and then having a reusable implementation which can be used in other places as required to execute certain functions as some user.

    jira 
    opened by sonicaj 13
  • NAS-119518 / 23.10 / Refine whitelisted host paths for apps validation

    NAS-119518 / 23.10 / Refine whitelisted host paths for apps validation

    Context

    In docker we were not able to distinguish between a host path as required by the container itself to function or if it being a user specified host path.

    With the change to containerd we can now make that distinction and paths have been updated accordingly so as to narrow down whitelisted paths which were allowed earlier.

    opened by Qubad786 2
  • NAS-119610 / 23.10 / Remove unnecessary method

    NAS-119610 / 23.10 / Remove unnecessary method

    Remove filesystem.file_get_contents since it doesn't have any type of validation and doesn't mix well with our rootless login functionality. This was a private method (only available across websocket connections) and was only used in our integration test suite, so I've fixed those tests accordingly.

    jira backport-22.12.1 
    opened by yocalebo 2
  • NAS-119507 / 23.10 / Don't delete builtin idmap table entries on constraint violation

    NAS-119507 / 23.10 / Don't delete builtin idmap table entries on constraint violation

    It's not altogether clear how a user got in this situation, but the production impact of nuking the default domain idmap entry is rather profound. In the case of idmap-related tables we should remove the foreign key rather than deleting the table entry (at least if it's a builtin entry).

    backport-22.12.1 
    opened by anodos325 3
  • NAS-119473 / 23.10 / Use pyparted for `disk.format`

    NAS-119473 / 23.10 / Use pyparted for `disk.format`

    Two concerns:

    • Exact partition sizes do not match with this approach (on 8GB HDD swap gets 900k smaller and data partition gets 900k larger), I guess it's alright?
    • With incorrect arguments middleware will now SEGFAULT
    jira 
    opened by themylogin 3
Releases(TS-22.02-RC.1-2)
Owner
TrueNAS
The world's most popular Open-Source Software Defined Storage.
TrueNAS
The web end of seafile server.

Introduction Seahub is the web frontend for Seafile. Preparation Build and deploy Seafile server from source. See http://manual.seafile.com/build_seaf

476 Dec 29, 2022
Nerd-Storage is a simple web server for sharing files on the local network.

Nerd-Storage is a simple web server for sharing files on the local network. It supports the download of files and directories, the upload of multiple files at once, making a directory, updates and de

ハル 68 Jun 07, 2022
Postgres CLI with autocompletion and syntax highlighting

A REPL for Postgres This is a postgres client that does auto-completion and syntax highlighting. Home Page: http://pgcli.com MySQL Equivalent: http://

dbcli 10.8k Dec 30, 2022
Synchronize local directories with Tahoe-LAFS storage grids

Gridsync Gridsync aims to provide a cross-platform, graphical user interface for Tahoe-LAFS, the Least Authority File Store. It is intended to simplif

171 Dec 16, 2022
a full featured file system for online data storage

S3QL S3QL is a file system that stores all its data online using storage services like Google Storage, Amazon S3, or OpenStack. S3QL effectively provi

917 Dec 25, 2022
Cross-platform desktop synchronization client for the Nuxeo platform.

Nuxeo Drive Desktop Synchronization Client for Nuxeo This is an ongoing development project for desktop synchronization of local folders with remote N

Nuxeo 63 Dec 16, 2022
A generic JSON document store with sharing and synchronisation capabilities.

Kinto Kinto is a minimalist JSON storage service with synchronisation and sharing abilities. Online documentation Tutorial Issue tracker Contributing

Kinto 4.2k Dec 26, 2022
A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.

mycli A command line client for MySQL that can do auto-completion and syntax highlighting. HomePage: http://mycli.net Documentation: http://mycli.net/

dbcli 10.7k Jan 07, 2023
Automatic SQL injection and database takeover tool

sqlmap sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of

sqlmapproject 25.7k Jan 02, 2023
ZFS, in Python, without reading the original C.

ZFSp What? ZFS, in Python, without reading the original C. What?! That's right. How? Many hours spent staring at hexdumps, and asking friends to searc

Colin Valliant 569 Oct 28, 2022
TrueNAS CORE/Enterprise/SCALE Middleware Git Repository

TrueNAS CORE/Enterprise/SCALE main source repo Want to contribute or collaborate? Join our Slack instance. IMPORTANT NOTE: This is the master branch o

TrueNAS 2k Jan 07, 2023
The Tahoe-LAFS decentralized secure filesystem.

Free and Open decentralized data store Tahoe-LAFS (Tahoe Least-Authority File Store) is the first free software / open-source storage technology that

Tahoe-LAFS 1.2k Jan 01, 2023
The command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage

B2 Command Line Tool The command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage. This program provides command-line a

Backblaze 467 Dec 08, 2022
The next generation relational database.

What is EdgeDB? EdgeDB is an open-source object-relational database built on top of PostgreSQL. The goal of EdgeDB is to empower its users to build sa

EdgeDB 9.9k Dec 31, 2022
Continuous Archiving for Postgres

WAL-E Continuous archiving for Postgres WAL-E is a program designed to perform continuous archiving of PostgreSQL WAL files and base backups. To corre

3.4k Dec 30, 2022
Barman - Backup and Recovery Manager for PostgreSQL

Barman, Backup and Recovery Manager for PostgreSQL Barman (Backup and Recovery Manager) is an open-source administration tool for disaster recovery of

EDB 1.5k Dec 30, 2022
An open source multi-tool for exploring and publishing data

Datasette An open source multi-tool for exploring and publishing data Datasette is a tool for exploring and publishing data. It helps people take data

Simon Willison 6.8k Jan 01, 2023
ZODB Client-Server framework

ZEO - Single-server client-server database server for ZODB ZEO is a client-server storage for ZODB for sharing a single storage among many clients. Wh

Zope 40 Nov 04, 2022