diff --git a/deployment/25.10.3/404.html b/deployment/25.10.3/404.html new file mode 100644 index 00000000..a501e304 --- /dev/null +++ b/deployment/25.10.3/404.html @@ -0,0 +1,4572 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +Automatic rebalancing is a fundamental feature of distributed data storage systems designed to maintain an even +distribution of data across storage nodes. This process ensures optimal performance, prevents resource overutilization, +and enhances system resilience by dynamically redistributing data in response to changes in cluster topology or workload +patterns.
+In a distributed storage system, data is typically spread across multiple storage nodes for redundancy, scalability, and +performance. Over time, various factors can lead to an imbalance in data distribution, such as:
+Automatic rebalancing addresses these issues by dynamically redistributing data across the cluster. This process is +driven by an algorithm that continuously monitors data distribution and redistributes data when imbalances are detected. +The goal is to achieve uniform data placement while minimizing performance overhead during the rebalancing process.
+ + + + + + + + + + + + + + + + + + + + +Disaggregated storage represents a modern approach to distributed storage architectures, where compute and storage +resources are decoupled. This separation allows for greater flexibility, scalability, and efficiency in managing data +across large-scale distributed environments.
+Traditional storage architectures typically integrate compute and storage within the same nodes, leading to resource +contention and inefficiencies. Disaggregated storage solutions address these limitations by separating storage resources +from compute resources, enabling independent scaling of each component based on workload demands.
+Key characteristics of disaggregated storage solutions include:
+Erasure coding is a data protection mechanism used in distributed storage systems to enhance fault tolerance and +optimize storage efficiency. It provides redundancy by dividing data into multiple fragments and encoding it with +additional parity fragments, enabling data recovery in the event of node failures.
+Traditional data redundancy methods, such as replication, require multiple full copies of data, leading to significant +storage overhead. Erasure coding improves upon this by using mathematical algorithms to generate parity fragments, +allowing data reconstruction with fewer overheads.
+The core principle of erasure coding involves breaking data into k data fragments and computing m parity +fragments. These k+m fragments are distributed across multiple storage nodes. The system can recover lost data using +any k available fragments, even if up to m fragments are missing or corrupted.
+Erasure coding has a number of key characteristics:
+Hyper-converged storage is a key component of hyper-converged infrastructure (HCI), where compute, storage, and +networking resources are tightly integrated into a unified system. This approach simplifies management, enhances +scalability, and optimizes resource utilization in distributed data storage environments.
+Traditional storage architectures often separate compute and storage into distinct hardware layers, requiring complex +management and specialized hardware. Hyper-converged storage consolidates these resources within the same nodes, forming +a software-defined storage (SDS) layer that dynamically distributes and manages data across the cluster.
+Key characteristics of hyper-converged storage include:
+Understanding the fundamental concepts behind simplyblock is essential for effectively utilizing its distributed storage +architecture. Simplyblock provides a cloud-native, software-defined storage solution that enables highly scalable, +high-performance storage for containerized and virtualized environments. By leveraging NVMe over TCP (NVMe/TCP) and +advanced data management features, simplyblock ensures low-latency access, high availability, and seamless scalability. +This documentation section provides detailed explanations of key storage concepts within simplyblock, helping users +understand how its storage components function and interact within a distributed system.
+The concepts covered in this section include Logical Volumes (LVs), Snapshots, Clones, Hyper-Convergence, +Disaggregation, and more. Each concept plays is crucial in optimizing storage performance, ensuring data durability, +and enabling efficient resource allocation. Whether you are deploying simplyblock in a Kubernetes environment, a +virtualized infrastructure, or a bare-metal setup, understanding these core principles will help you design, configure, +and manage your storage clusters effectively.
+By familiarizing yourself with these concepts, you will gain insight into how simplyblock abstracts storage resources, +provides scalable and resilient data services, and integrates with modern cloud-native environments. This knowledge is +essential for leveraging simplyblock to meet your organization's storage performance, reliability, and scalability +requirements.
+ + + + + + + + + + + + + + + + + + + + +Logical Volumes (LVs) in Simplyblock are virtual NVMe devices that provide scalable, high-performance storage within a +distributed storage cluster. They enable flexible storage allocation, efficient resource utilization, and seamless data +management for cloud-native applications.
+A Logical Volume (LV) in simplyblock is an abstracted storage entity dynamically allocated from a storage pool managed +by the simplyblock system. Unlike traditional block storage, simplyblock’s LVs offer advanced features such as thin +provisioning, snapshotting, and replication to enhance resilience and scalability.
+Key characteristics of Logical Volumes include:
+Two basic types of logical volumes are supported by simplyblock:
+Volumes show up in Linux using lsblk as /dev/nvme0n2, /dev/nvme1n1, /dev/nvmeXn1, ...
This is a more resource-efficient, but performance-limited, version of an individual volume. It is useful, if many, + small volumes are required. Both methods can be combined in a single cluster.
+Volumes show up in Linux using lsblk as /dev/nvme0n1, /dev/nvme0n2, /dev/nvme0nX, ...
Persistent Volumes (PVs) in Kubernetes provide a mechanism for managing storage resources independently of individual +Pods. Unlike ephemeral storage, which is tied to the lifecycle of a Pod, PVs ensure data persistence across Pod restarts +and rescheduling, enabling stateful applications to function reliably in a Kubernetes cluster.
+In Kubernetes, storage resources are abstracted through the Persistent Volume framework, which decouples storage +provisioning from application deployment. A Persistent Volume (PV) represents a piece of storage that has been +provisioned in the cluster, while a Persistent Volume Claim (PVC) is a request for storage made by an application.
+Key characteristics of Persistent Volumes include:
+The simplyblock storage platform consists of three different types of cluster nodes and belongs to the control plane +or storage plane.
+The control plane orchestrates, monitors, and controls the overall storage infrastructure. It provides centralized +administration, policy enforcement, and automation for managing storage nodes, logical volumes (LVs), and cluster-wide +configurations. The control plane operates independently of the storage plane, ensuring that control and metadata +operations do not interfere with data processing. It facilitates provisioning, fault management, and system scaling +while offering APIs and CLI tools for seamless integration with external management systems. A single control plane +can manage multiple clusters.
+The storage plane is the layer responsible for managing and distributing data across storage nodes within a cluster. It +handles data placement, replication, fault tolerance, and access control, ensuring that logical volumes (LVs) provide +high-performance, low-latency storage to applications. The storage plane operates independently of the control plane, +allowing seamless scalability and dynamic resource allocation without disrupting system operations. By leveraging +NVMe-over-TCP and software-defined storage principles, simplyblock’s storage plane ensures efficient data distribution, +high availability, and resilience, making it ideal for cloud-native and high-performance computing environments.
+A management node is a node of the control plane cluster. The management node runs the necessary management services +including the Cluster API, services such as Grafana, Prometheus, and Graylog, as well as the FoundationDB database +cluster.
+A storage node is a node of the storage plane cluster. The storage node provides storage capacity to the distributed +storage pool of a specific storage cluster. The storage node runs the necessary data management services including +the Storage Node Management API, the SPDK service, and handles logical volume primary connections of NVMe-oF +multipathing.
+A secondary node is a node of the storage plane cluster. The secondary node provides automatic fail over and high +availability for logical volumes using NVMe-oF multipathing. In a highly available cluster, simplyblock automatically +provisions secondary nodes alongside primary nodes and assigns one secondary node per primary.
+ + + + + + + + + + + + + + + + + + + + +Volume snapshots and volume clones are essential data management features in distributed storage systems that enable +data protection, recovery, and replication. While both techniques involve capturing the state of a volume at a specific +point in time, they serve distinct purposes and operate using different mechanisms.
+A volume snapshot is a read-only, point-in-time copy of a storage volume. It preserves the state of the volume at the +moment the snapshot is taken, allowing users to restore data or create new volumes based on the captured state. +Snapshots are typically implemented using copy-on-write (COW) or redirect-on-write (ROW) techniques, minimizing storage +overhead and improving efficiency.
+Key characteristics of volume snapshots include:
+A volume clone is a writable, independent copy of a storage volume, created from either an existing volume or a +snapshot. Unlike snapshots, clones are fully functional duplicates that can operate as separate storage entities.
+Key characteristics of volume clones include:
+Storage pooling is a technique used in distributed data storage systems to aggregate multiple storage devices into a +single, unified storage resource. This approach enhances resource utilization, improves scalability, and simplifies +management by abstracting physical storage infrastructure into a logical storage pool.
+Traditional storage architectures often rely on dedicated storage devices assigned to specific applications or +workloads, leading to inefficiencies in resource allocation and potential underutilization. Storage pooling addresses +these challenges by combining storage resources from multiple nodes into a shared pool, allowing dynamic allocation +based on demand.
+Key characteristics of storage pooling include:
+Simplyblock is designed to provide enterprise-grade high availability (HA) and fault tolerance for enterprise and +cloud-native storage environments. Through a combination of distributed architecture and advanced data protection +mechanisms, simplyblock ensures continuous data access, resilience against failures, and minimal service disruption. +Fault tolerance is embedded at multiple levels of the system, from data redundancy to control plane and storage path +resilience.
+Simplyblock’s architecture provides robust fault tolerance and high availability by combining distributed erasure +coding, multipath access with failover, and redundant management and storage planes. These capabilities ensure that +Simplyblock storage clusters deliver the reliability and resiliency required for critical, high-demand workloads in +modern distributed environments.
+Simplyblock protects data using distributed erasure coding, which ensures that data is striped across multiple +storage nodes along with parity fragments. This provides:
+Simplyblock supports NVMe-over-Fabrics (NVMe-oF) multipathing to provide path redundancy between clients and +storage:
+To ensure cluster-wide availability, Simplyblock operates with full redundancy in both its control plane and +storage plane:
+Control Plane (Management Nodes):
+Storage Plane (Storage Nodes):
+Simplyblock is a cloud-native, software-defined storage platform designed for high performance, scalability, and +resilience. It provides NVMe over TCP (NVMe/TCP) and NVMe over RDMA (ROCEv2) block storage, enabling efficient data +access across distributed environments. Understanding the architecture, key concepts, and common terminology is +essential for effectively deploying and managing simplyblock in various infrastructure setups, including Kubernetes +clusters, virtualized environments, and bare-metal deployments. This documentation provides a comprehensive overview +of simplyblock’s internal architecture, the components that power it, and the best practices for integrating it into +your storage infrastructure.
+This section covers several critical topics, including the architecture of simplyblock, core concepts such as Logical +Volumes (LVs), Storage Nodes, and Management Nodes, as well as Quality of Service (QoS) mechanisms and redundancy +strategies. Additionally, we define common terminology used throughout the documentation to ensure clarity and +consistency. Readers will also find guidelines on document conventions, such as formatting, naming standards, and +command syntax, which help maintain uniformity across all technical content.
+Simplyblock is an evolving platform, and community contributions play a vital role in improving its documentation. +Whether you are a developer, storage administrator, or end user, your insights and feedback are valuable. This section +provides details on how to contribute to the documentation, report issues, suggest improvements, and submit pull +requests. By working together, we can ensure that simplyblock’s documentation remains accurate, up-to-date, and +beneficial for all users.
+ + + + + + + + + + + + + + + + + + + + +Simplyblock is a cloud-native, distributed block storage platform designed to deliver scalable, high-performance, and +resilient storage through a software-defined architecture. Centered around NVMe-over-Fabrics (NVMe-oF), simplyblock +separates compute and storage to enable scale-out elasticity, high availability, and low-latency operations in modern, +containerized environments. The architecture is purpose-built to support Kubernetes-native deployments with seamless +integration but supports virtual and even physical machines as clients as well.
+The control plane hosts the Simplyblock Management API and CLI endpoints with identical features. The CLI is equally +available on all management nodes. The API and CLI are secured using HTTPS / TLS.
+The control plane operates through redundant management nodes that handle cluster health, metadata, and orchestration. A +quorum-based model ensures no single point of failure.
+The control plane provides the following functionality:
+The control plane also provides real-time collection and aggregation of I/O stats (performance, capacity, +utilization), proactive cluster monitoring and health checks, monitoring dashboards, alerting, a log file repository +with a management interface, data migration, and automated node and device restart services.
+For monitoring dashboards and alerting, the simplyblock control plane provides Grafana and Prometheus. Both systems are +configured to provide a set of standard alerts that can be delivered via Slack or email. Additionally, customers +are free to define their own custom alerts.
+For log management, simplyblock uses Graylog. For a comprehensive insight, Graylog is configured to collect container +logs from the control plane and storage plane services, the RPC communication between the control plane and storage +cluster and the data services logs (SPDK ⧉ or Storage Performance +Development Kit).
+The control plane is implemented as a stack of containers running on one or more management nodes. For production +environments, simplyblock requires at least three management nodes for high availability. The management nodes run as +a set of replicated, stateful services.
+For internal state storage, the control plane uses (FoundationDB ⧉) as +its key-value store. FoundationDB, by itself, operates in a replicated highly-available cluster across all management +nodes.
+Within Kubernetes deployments, the control plane can now also be deployed alongside the storage nodes on the same k8s +workers. It will, however, run in separate pods.
+The storage plane consists of distributed storage nodes that run on Linux-based systems and provide logical volumes ( +LVs) as virtual NVMe devices. Using SPDK and DPDK (Data Plane Development Kit), simplyblock achieves high-speed, +user-space storage operations with minimal latency.
+To achieve that, simplyblock detaches NVMe devices from the Linux kernel, bypassing the typical kernel-based handling. +It then takes full control of the device directly, handling all communication with the hardware in user-space. That +removes transitions from user-space to kernel and back, improving latency and reducing processing time and context +switches.
+Simplyblock supports linear scale-out by adding storage nodes without service disruption. Performance increases with +additional cores, network interfaces, and NVMe devices, with SPDK minimizing CPU overhead for maximum throughput.
+Data written to a simplyblock logical volume is split into chunks and distributed across the storage plane cluster +nodes. This improves throughput by parallelizing the access to data through multiple storage nodes.
+Simplyblock's storage engine implements erasure coding, a RAID-like system, which uses parity information to protect +data and restore it in case of a failure. Due to the fully distributed nature of simplyblock's erasure coding +implementation, parity information is not only stored on disks other than the original data chunk, but also on other +nodes. This improves data protection and enables higher fault tolerance than typical implementations. While most +erasure coding implementations provide a Maximum Tolerable Failure (MFT) in terms of how many disks can fail, +simplyblock defines it as the number of nodes that can fail.
+As a second layer, simplyblock leverages NVMe-oF multipathing to ensure continuous access to logical volumes by +automatically handling failover between primary and secondary nodes. Each volume is presented with multiple active +paths, allowing I/O operations to seamlessly reroute through secondary nodes if the primary node becomes unavailable due +to failure, maintenance, or network disruption. This multipath configuration is managed transparently by the NVMe-oF +subsystem, providing path redundancy, eliminating single points of failure, and maintaining high availability without +requiring manual intervention. The system continuously monitors path health, and when the primary path is restored, it +can be automatically reintegrated, ensuring optimal performance and reliability.
+Last, simplyblock provides robust encryption for data-at-rest, ensuring that all data stored on logical volumes is +protected using industry-standard AES_XTS encryption with minimal performance overhead. This encryption is applied at +the volume level and is managed transparently within the simplyblock cluster, allowing compliance with strict regulatory +requirements such as GDPR, HIPAA, and PCI-DSS. Furthermore, simplyblock’s architecture is designed for strong +multitenant isolation, ensuring that encryption keys, metadata, and data are securely segregated between tenants. This +guarantees that unauthorized access between workloads and users is prevented, making simplyblock an ideal solution for +shared environments where security, compliance, and tenant separation are critical.
+Building strong and reliable distributed storage technology has to build on a strong foundation. That's why simplyblock +uses a variety of open-source key technologies as its basis.
+| Component | +Technologies | +
|---|---|
| Networking | +NVMe-oF ⧉, NVMe/TCP, NVMe/RoCE, DPDK ⧉ | +
| Storage | +SPDK ⧉, FoundationDB ⧉, MongoDB ⧉ | +
| Observability | +Prometheus ⧉, Thanos ⧉, Grafana ⧉ | +
| Logging | +Graylog ⧉, OpenSearch ⧉ | +
| Kubernetes | +SPDK CSI ⧉, Kubernetes CSI ⧉ | +
| Operating System | +Linux ⧉ | +
Storage performance can be categorized by latency (the aggregate response time of an IO request from the host to the +storage system) and throughput. Throughput can be broken down into random IOPS throughput and sequential throughput.
+IOPS and sequential throughput must be measured relative to capacity (i.e., IOPS per TB).
+Latency and IOPS throughput depend heavily on the IO operation (read, write, unmap) and the IO size (4K, 8K, 16K, +32K, ...). For comparability, it is typically tested with a 4K IO size, but tests with 8K to 128K are standard too.
+Latency is strongly influenced by the overall load on the overall storage system. If there is intense IO pressure, +queues build up and response times go up. This is no different from a traffic jam on the highway or a queue at the +airline counter. Therefore, to compare latency results, it must be measured under a fixed system load (amount of +parallel IO, its size, and IO type mix).
+Important
+For latency, consistency matters. High latency variability, especially in the tail, can severely impact workloads. +Therefore, 99th percentile latency may be more important than the average or median.
+Unequal load distribution across cluster nodes, and the dynamics of specific nodes under Linux or Windows (dynamic +multithreading, network bandwidth fluctuations, etc.), create significant challenges for consistent, high storage +performance in such an environment.
+Mixed IO patterns increase these challenges from different workloads.
+This can cause substantial variability in latency, IOPS throughput, and high-tail latency, with a negative impact on +workloads.
+Simplyblock exhibits a range of architectural characteristics and features to guarantee consistently low latency and +IOPS in both disaggregated and hyper-converged environments.
+Simplyblock is a fully distributed solution. Back-storage is balanced across all nodes in the cluster on a very granular +level. Relative to their capacity and performance, each device and node in the cluster receives a similar amount and +size of IO. This feature ensures an entirely equal distribution of load across the network, compute, and NVMe drives.
+In case of drive or node failures, distributed rebalancing occurs to reach the fully balanced state as quickly as +possible. When adding drives and nodes, performance increases in a linear manner. This mechanism avoids local +overload and keeps latency and IOPS throughput consistent across the cluster, independent of which node is accessed.
+Storage access is entirely based on NVMe (local back-storage) and NVMe over Fabric (hosts to storage nodes and storage +nodes to storage nodes). This protocol is inherently asynchronous and supports highly parallel processing, eliminating +bottlenecks specific to mixed IO patterns on other protocols (such as iSCSI) and ensuring consistently low latency.
+Simplyblock also supports NVMe over RDMA (ROCEv2). RDMA, as a transport layer, offers significant latency and tail +latency advantages over TCP. Today, RDMA can be used in most data center environments because it requires only specific +hardware features from NICs, which are available across a broad range of models. It runs over UDP/IP and, as such, does +not require any changes to the networking.
+Simplyblock implements full CPU core isolation and NUMA socket affinity. Simplyblock’s storage nodes are auto-deployed +per NUMA socket and utilize only socket-specific resources, meaning compute, memory, network interfaces, and NVMe.
+All CPU cores assigned to simplyblock are isolated from the operating system (user-space compute and IRQ handling), and +internal threads are pinned to cores. This avoids any scheduling-induced delays or variability in storage processing.
+Simplyblock uses a user-space framework (SPDK ⧉). SPDK implemented a +zero-copy model across the entire storage processing chain. This includes the data plane, the Kinux vfio driver, and the +entirely non-locking, asynchronous DPDK threading model. It enables avoiding Linux p-threads and any inter-thread +synchronization, providing much higher latency predictability and a lower baseline latency.
+Simplyblock implements two independent, critical QoS mechanisms.
+A cap, such as an IOPS, throughput limit, or a combination of both, can be set on an individual volume or an entire pool +within the cluster. Through this limit, general-purpose volumes can be pooled and limited in their total IOPS or +throughput to avoid noisy-neighbor effects and protect more critical workloads.
+On each cluster, up to 7 service classes can be defined (class 0 is the default). For each class, cluster performance (a +combination of IOPS and throughput) can be allocated in relative terms (e.g., 20%) for performance guarantees.
+General-purpose volumes can be allocated in the default class, while more critical workloads can be split across other +service classes. If other classes do not use up their quotas, the default class can still allocate all available +resources.
+Why is a limit not sufficient? Imagine a heavily mixed workload in the cluster. Some workloads are read-intensive, while +others are write-intensive. Some workloads require a lot of small random IO, while others read and write large +sequential IO. There is no absolute number of IOPS or throughput a cluster can provide, considering the dynamics of +workloads.
+Therefore, using absolute limits on one pool of volumes is effective for protecting others from spillover effects and +undesired behavior. Still, it does not guarantee performance for a particular class of volumes.
+Service classes provide a much better degree of isolation under the consideration of dynamic workloads. As long as you +do not overload a particular service class, the general IO pressure on the cluster will not matter for the performance +of volumes in that class.
+ + + + + + + + + + + + + + + + + + + + +Simplyblock is a high-performance, distributed storage orchestration layer designed for cloud-native environments. It +provides NVMe over TCP (NVMe/TCP) block storage to hosts and offers block storage to containers through its Container +Storage Interface (CSI) and ProxMox drivers.
+Environment Agnostic: Simplyblock operates seamlessly across major cloud providers, regional, and specialized + providers, bare-metal and virtual provisioners, and private clouds, including both virtualized and bare-metal + Kubernetes environments.
+NVMe-Optimized: Simplyblock is built from scratch around NVMe. All internal and external storage access is + entirely based on NVMe and NVMe over Fabric (TCP, RDMA). This includes local back-storage on storage nodes, + host-to-cluster, and node-to-node traffic. Together with the user-space data plane, distributed data placement, and + advanced quality of service (QoS) and other characteristics, this makes simplyblock the storage platform with the most + advanced performance guarantees in hyperconverged solutions available today.
+User-Space Data Plane: Simplyblock data plane is built entirely in user-space with an interrupt-free, lockless, + zero-copy architecture with thread-to-core pinning. The hot data path entirely avoids Linux kernel involvement, data + copies, dynamic thread scheduling, and inter-thread synchronization. Its deployment is fully numa-node-aware.
+Advanced QoS: Simplyblock provides not only IOPS or throughput-based caps, but also true QoS service classes, + effectively isolating IO traffic.
+Distributed Data Placement: Simplyblock's advanced data placement, which is based on small, fixed-size data + chunks, ensures a perfectly balanced utilization of storage, compute, and network bandwidth, avoiding any performance + bottlenecks local to specific nodes. This provides almost linear performance scalability for the cluster.
+Containerized Architecture: The solution comprises:
+Platform Support: Simplyblock supports deployment on virtual machines, bare-metal instances, and Kubernetes + containers, compatible with x86 and ARM architectures.
+Deployment Flexibility: Simplyblock offers the greatest deployment flexibility in the industry. It can be deployed + hyper-converged, disaggregated, and in a hybrid fashion, combining the best of both worlds.
+Simplyblock offers tailored advantages to various sectors:
+Financial Services: Enhances data management by boosting performance, strengthening security, and optimizing cloud + storage costs.
+Media and Gaming: Improves storage performance, reduces costs, and streamlines data management, facilitating + efficient handling of large media files and gaming data.
+Technology and SaaS Companies: Provides cost savings and performance enhancements, simplifying storage management + and improving application performance without significant infrastructure changes.
+Telecommunications: Offers ultra-low-latency access to data, enhances security, and simplifies complex storage + infrastructures, aiding in the efficient management of customer records and network telemetry.
+Blockchain and Cryptocurrency: Delivers cost efficiency, enhanced performance, scalability, and robust data + security, addressing the unique storage demands of blockchain networks.
+