384
the system rather than one file system per NUMA node, a software volume manager
can be used to create concatenations or stripes (RAID0) using all the system’s capacity.
For example, if you have 1.5TiB of persistent memory per CPU socket on a two-socket
system, you could build a concatenation or stripe (RAID0) to create a 3TiB file system. If
local system redundancy is more important than large file systems, mirroring (RAID1)
persistent memory across NUMA nodes is possible. In general, replicating the data
across physical servers for redundancy is better. Chapter 18 discusses remote persistent
memory in detail, including using remote direct memory access (RDMA) for data
transfer and replication across systems.
There are too many volume manager products to provide step-by-step recipes for all of
them within this book. On Linux, you can use Device Mapper (dmsetup), Multiple Device
Driver (mdadm), and Linux Volume Manager (LVM) to create volumes that use the capacity
from multiple NUMA nodes. Because most modern Linux distributions default to using
LVM for their boot disks, we assume that you have some experience using LVM. There is
extensive information and tutorials within the Linux documentation and on the Web.
Figure 19-3 shows two regions on which we can create either an fsdax or sector
type namespace that creates the corresponding /dev/pmem0 and /dev/pmem1 devices.
Using /dev/pmem[01], we can create an LVM physical volume which we then combine
to create a volume group. Within the volume group, we are free to create as many logical
volumes of the requested size as needed. Each logical volume can support one or more
file systems.
Figure 19-3. Linux Volume Manager architecture using persistent memory regions
and namespaces
Chapter 19 advanCed topiCs
the system rather than one file system per NUMA node, a software volume manager
can be used to create concatenations or stripes (RAID0) using all the system’s capacity.
For example, if you have 1.5TiB of persistent memory per CPU socket on a two-socket
system, you could build a concatenation or stripe (RAID0) to create a 3TiB file system. If
local system redundancy is more important than large file systems, mirroring (RAID1)
persistent memory across NUMA nodes is possible. In general, replicating the data
across physical servers for redundancy is better. Chapter 18 discusses remote persistent
memory in detail, including using remote direct memory access (RDMA) for data
transfer and replication across systems.
There are too many volume manager products to provide step-by-step recipes for all of
them within this book. On Linux, you can use Device Mapper (dmsetup), Multiple Device
Driver (mdadm), and Linux Volume Manager (LVM) to create volumes that use the capacity
from multiple NUMA nodes. Because most modern Linux distributions default to using
LVM for their boot disks, we assume that you have some experience using LVM. There is
extensive information and tutorials within the Linux documentation and on the Web.
Figure 19-3 shows two regions on which we can create either an fsdax or sector
type namespace that creates the corresponding /dev/pmem0 and /dev/pmem1 devices.
Using /dev/pmem[01], we can create an LVM physical volume which we then combine
to create a volume group. Within the volume group, we are free to create as many logical
volumes of the requested size as needed. Each logical volume can support one or more
file systems.
Figure 19-3. Linux Volume Manager architecture using persistent memory regions
and namespaces
Chapter 19 advanCed topiCs
