Back to Articles

These servers are part of the Persistence Tier.

The Virtual Machines chosen for the Cassandra Data Nodes address the CPU, Memory, and Disk requirements that match expected I/O and performance. They run a version of Cassandra and consist of the following elements:

Standard virtual machine

  • 8 vCPU Cores
  • 28GB RAM
  • One of the operating systems listed in: Operating system requirements
  • Additional 40GB disk volume mounted as /opt/arris for CommScope-specific applications and logs
  • 10 Gb/s network throughput between nodes

SSD storage

  • Data Disk for COMMIT LOG
    • 32 GB
    • 2300 IOPS or greater
    • Mounted as /var/lib/cassandra/commitlog (default)
      NOTE: You can choose another mount point, but it must NOT be in /opt/arris. See Server and virtual machine requirements for more information.
      NOTE: It is important that the commitlog directory be on a separate physical disk (not simply a partition) from the /var/lib/cassandra/data files.
      NOTE: Commit logs must be durable to ensure that a restarted node can reconstruct any data not written to the data files from the flushed commit logs. Cassandra writes perform best when commit logs are on disks with high throughput and low latency.
  • Data Disk for DATA
    • 2 TB

      For best Cassandra performance, 1TB disk space for this partition is recommended. This partition should not exceed 2TB per node. Larger disks can lead to longer rebuild times and compromised availability. If allocating 2TB per node, a stripe of two 1 TB disks is preferred to a single 2 TB disk. If deploying 1TB disks, the number of Cassandra nodes needs to be adjusted based on total disk usage calculation.

    • 5000 IOPS or greater
    • 750 MB/s or higher throughput
    • Mounted as /var/lib/cassandra/data (default)
      NOTE: You can choose another mount point, but it must NOT be in /opt/arris. See Server and virtual machine requirements for more information.
      NOTE: Use of any shared storage is strongly discouraged for Cassandra data disk. Shared storage leads to performance issues and high availability cannot be guaranteed during disk failure recovery.

      For reference on Cassandra data disk sizing, the estimated disk usage is 6.5 GB per million channels, across the cluster for one day of data. This assumes standard hourly RF data, 15 minute Outage data, and daily modem location topology updates. Higher disk usage should be expected if higher frequency data ingests are scheduled, or if Modem Session or Spectrum Session are heavily used.

      NOTE: Higher disk space is required if 5 minute CMTS channel utilization data is enabled.

      For reference, the following table quantifies the disk space usage if you assume fully loaded Cassandra nodes with 100 million channels.

      Days of HistoryDisk Space UsageTotal Cluster Disk Space Required
      149100 GB18.2 TB
      2113650 GB27.3 TB
      3019500 GB39 TB
      NOTE: When planning for disk size, Cassandra requires that disk space usage not exceed 50% on each node. The extra space is reserved for database file compaction, as well as snapshots auto-created during ServAssure NXT upgrades.

High Availability

Racks

ServAssure NXT’s Cassandra nodes are grouped in racks and data centers. A rack is a logical group of servers. The architecture of Cassandra uses racks so that no replica is stored redundantly inside a singular rack, ensuring that replicas are spread around through different racks in case one rack goes down. ServAssure NXT sets the replication factor to 3, i.e., each data record is replicated to three nodes. Therefore, for best balanced Cassandra topology:
  • The number of racks in a data center should be 3.
  • The number of nodes in each rack should be equal.

To ensure high availability in a cloud deployment or data center with Availability Zone support, each rack must be mapped to a separate Availability zone. Otherwise, actual physical racks are a good option and is important to eliminate any shared storage between racks. For even higher availability, consider enabling a Cassandra multidatacenter configuration. Refer to Multidatacenter deployment for configuration information.

Seed node

A seed node is used to bootstrap the gossip process for new nodes joining a cluster. The general recommendation is to specify three seed nodes per data center. For a small data center with only three nodes, specify two seed nodes.

The following example demonstrates three seed nodes:

[cassandra_seeds]
data1.lab.com rack=RAC1 ip=192.168.1.1
data2.lab.com rack=RAC2 ip=192.168.1.2
data3.lab.com rack=RAC3 ip=192.168.1.3
[cassandra_others]
data4.lab.com rack=RAC1 ip=192.168.1.4
data5.lab.com rack=RAC2 ip=192.168.1.5
data6.lab.com rack=RAC3 ip=192.168.1.6