Can I use more than one namespace on a flash device?


#1

Yes. This is possible, but how you do this depends on your hardware. The basic strategy is to create partitions on the SSD. For simplicity sake, let’s say you have a 100 GB SSD with a device ID of /dev/sdb. You can create a 30 GB partition which will be referred to as /dev/sdb1 and a 70 GB partition that will be /dev/sdb2. There are some notes to be aware of:

The easiest way to do this is usually to use the fdisk Linux command. There are many articles on how to do this on the internet and there may be slight variations depending on your hardware. If you are using a RAID controller, please see you RAID controller’s documentation on how to create multiple partitions. For best performance, we do not recommend striping data across SSDs. While this gives higher bandwidth, the normal use case for Aerospike is for low latency. Bandwidth is generally not the bottleneck. In your configuration files and commands, you must refer to the partition rather than the disk. You must deal with over-provisioning separately. Be very careful when you erase the partition with the “dd” command. You should run it on each partition separately, rather than on the entire disk. The total throughput of each node remains the same. The namespaces on the SSD will share IOPS. This may result in some confusion since the throughput on one namespace may not be high, but may be affected by high activity on the other namespace. The alternative mechanism for dealing with this is to put each namespace on a separate SSD, but this is not always practical.