25.3-PRE
Simplyblock is happy to release the pre-release version of the upcoming Simplyblock 25.3.
Warning
This is a pre-release and may contain issues. It is not recommended for production use.
New Features
Simplyblock strives to provide a strong product. Following is a list of the enhancements and features that made it into this release.
- High availability has been significantly hardened for production. Main improvements concern the support for safe and interruption free fail-over and fail-back in different types of outage scenarios. Those include: partial network outage, full network outage, host failure, container failure, reboots, graceful and ungraceful shutdowns of nodes. Tested for single und dial node outages.
- Multiple journal compression bugs have been identified and fixed.
- Multiple journal fail-over bugs have been identified and fixed.
- Logical volume creation, deletion, snapshotting, and resizing can now be performed via a secondary storage node (when the primary storage node is offline).
- The system has been hardened against high load scenarios, determined by the amount of parallel NVMe-oF volumes per node, the amount of storage and parallel I/O. Tested up to 400 concurrent and fully active logical volumes per node and u to 20 concurrent I/O processes per logical volume.
- Erasure coding schemes 2+1, 2+2, 4+2, 4+4 have been made power-fail-safe with high availability enabled.
- System has been extensively tested outside of AWS with KVM-based virtualization and on bare-metal deployments.
- Significant rework of the command line tool
sbclito simplify commands and parameters and make it more consistent. For more information see Important Changes. - Support for Linux Core Isolation to improve performance and system stability.
- Added support for Proxmox via the Simplyblock Proxmox Integration.
Important Changes
Simplyblock made significant changes to the command line tool sbcli to simplify working with it. Many parameters and
commands were meant for internal testing and confusing to users. Hence, simplyblock decided to make those private.
Parameters and commands that were made private should not influence users. If the change to private for a parameter or command should affect your deployment, please reach out.
Most changes are backwards-compatible, however, some are not. Following is a list of all changes.
- Command:
storage-node- Renamed command
sntostorage-node(snstill works as an alias) - Changed subcommand
device-testing-modeto private - Changed subcommand
info-spdkto private - Changed subcommand
remove-jm-deviceto private - Changed subcommand
send-cluster-mapto private - Changed subcommand
get-cluster-mapto private - Changed subcommand
dump-lvstoreto private - Changed subcommand
setto private - Subcommand:
deploy- Added parameter
--cpu-mask - Added parameter
--isolate-cores
- Added parameter
- Subcommand:
add-node- Renamed parameter
--partitionsto--journal-patition - Renamed parameter
--storage-nicsto--data-nics - Renamed parameter
--number-of-vcpusto--vcpu-count - Added parameter
--max-snap(private) - Changed parameter
--jm-percentto private - Changed parameter
--number-of-devicesto private - Changed parameter
--size-of-deviceto private - Changed parameter
--cpu-maskto private - Changed parameter
--spdk-imageto private - Changed parameter
--spdk-debugto private - Changed parameter
--iobuf_small_bufsizeto private - Changed parameter
--iobuf_large_bufsizeto private - Changed parameter
--enable-test-deviceto private - Changed parameter
--disable-ha-jmto private - Changed parameter
--id-device-by-nqnto private - Changed parameter
--max-snapto private
- Renamed parameter
- Subcommand:
restart- Renamed parameter
--node-ipto--node-addr(--node-ipstill works but is deprecated and should be exchanged) - Changed parameter
--max-snapto private - Changed parameter
--max-sizeto private - Changed parameter
--spdk-imageto private - Changed parameter
--spdk-debugto private - Changed parameter
--iobuf_small_bufsizeto private - Changed parameter
--iobuf_large_bufsizeto private
- Renamed parameter
- Subcommand:
list-devices- Removed parameter
--sort/-s
- Removed parameter
- Renamed command
- Command:
cluster - Changed subcommand
graceful-shutdownto private - Changed subcommand
graceful-startupto private- Subcommand:
deploy- Renamed parameter
--separate-journal-deviceto--journal-partition - Renamed parameter
--storage-nicsto--data-nics - Renamed parameter
--number-of-vcpusto--vcpu-count - Changed parameter
--ha-jm-countto private - Changed parameter
--enable-qosto private - Changed parameter
--blk-sizeto private - Changed parameter
--page_sizeto private - Changed parameter
--CLI_PASSto private - Changed parameter
--grafana-endpointto private - Changed parameter
--distr-bsto private - Changed parameter
--max-queue-sizeto private - Changed parameter
--inflight-io-thresholdto private - Changed parameter
--jm-percentto private - Changed parameter
--max-snapto private - Changed parameter
--number-of-distribsto private - Changed parameter
--size-of-deviceto private - Changed parameter
--cpu-maskto private - Changed parameter
--spdk-imageto private - Changed parameter
--spdk-debugto private - Changed parameter
--iobuf_small_bufsizeto private - Changed parameter
--iobuf_large_bufsizeto private - Changed parameter
--enable-test-deviceto private - Changed parameter
--disable-ha-jmto private - Changed parameter
--lvol-nameto private - Changed parameter
--lvol-sizeto private - Changed parameter
--pool-nameto private - Changed parameter
--pool-maxto private - Changed parameter
--snapshot/-sto private - Changed parameter
--max-volume-sizeto private - Changed parameter
--encryptto private - Changed parameter
--crypto-key1to private - Changed parameter
--crypto-key2to private - Changed parameter
--max-rw-iopsto private - Changed parameter
--max-rw-mbytesto private - Changed parameter
--max-r-mbytesto private - Changed parameter
--max-w-mbytesto private - Changed parameter
--distr-vuidto private - Changed parameter
--lvol-ha-typeto private - Changed parameter
--lvol-priority-classto private - Changed parameter
--fstypeto private
- Renamed parameter
- Subcommand:
create- Changed parameter
--page_sizeto private - Changed parameter
--CLI_PASSto private - Changed parameter
--distr-bsto private - Changed parameter
--distr-chunk-bsto private - Changed parameter
--ha-typeto private - Changed parameter
--max-queue-sizeto private - Changed parameter
--inflight-io-thresholdto private - Changed parameter
--enable-qosto private
- Changed parameter
- Subcommand:
add- Changed parameter
--page_sizeto private - Changed parameter
--distr-bsto private - Changed parameter
--distr-chunk-bsto private - Changed parameter
--max-queue-sizeto private - Changed parameter
--inflight-io-thresholdto private - Changed parameter
--enable-qosto private
- Changed parameter
- Subcommand:
- Command:
storage-pool- Removed subcommandget-secret- Removed subcommandupdate-secret- Subcommand:
add- Changed parameter
--has-secretto private -Command:caching-node
- Changed parameter
- Subcommand:
add-node- Renamed parameter
--number-of-vcpusto--vcpu-count - Changed parameter
--cpu-maskto private - Changed parameter
--memoryto private - Changed parameter
--spdk-imageto private
- Renamed parameter
- Command:
volume- Changed subcommand
list-memto private - Changed subcommand
moveto private
- Changed subcommand
- Subcommand:
add- Renamed parameter
--pvc_nameto--pvc-name(--pvc_namestill works but is deprecated and should be exchanged) - Changed parameter
--distr-vuidto private - Changed parameter
--uidto private
- Renamed parameter
- Subcommand:
Known Issues
Simplyblock always seeks to provide a stable and strong release. However, smaller known issues happen. Following is a list of known issues of the current simplyblock release.
Info
This is a pre-release and many of those known issues are expected to be resolved with the final release.
- The control plane reaches a limit at around 2,200 logical volumes.
- If a storage node goes offline while a logical volume is being deleted, the storage cluster may keep some garbage.
- In rare cases, resizing a logical volume under high I/O load may cause a storage node restart.
- If a storage cluster reaches its capacity limit and runs full, file systems on logical volumes may return I/O errors.
- A fail-back after a fail-over may increase to >10s (with freezing I/O) with a larger number of logical volumes per storage node (>100 logical volumes).
- A fail-over time may increase to >5s (with freezing I/O) on large logical volumes (>5 TB).
- During a node outage, I/O performance may drop significantly with certain I/O patterns due to a performance issue in the journal compression.
- Journal compression may cause significant I/O performance drops (10-20s) in periodic intervals under certain I/O load patterns, especially when the logical volume capacity reaches its limits for the first time.
- A peak read IOPS performance regression has been observed.
- In rare cases, a primary-secondary storage node combination may get into a flip-flop situation with multiple fail-over/fail-back iterations due to network or configuration issues of particular logical volumes or clients.
- A secondary node may get stuck when trying to restart under high load (>100 logical volumes).
- Node affinity rules are not considered after a storage node migration to a new host.
- Return code of sbcli commands is always 0.