1 /*
2 * Copyright 2021-2022 The OSHI Project Contributors
3 * SPDX-License-Identifier: MIT
4 */
5 package oshi.hardware;
6
7 import java.util.Map;
8 import java.util.Set;
9
10 import oshi.annotation.concurrent.Immutable;
11
12 /**
13 * A logical volume group implemented as part of logical volume management, combining the space on one or more storage
14 * devices such as disks or partitions (physical volumes) into a storage pool, and subsequently allocating that space to
15 * virtual partitions (logical volumes) as block devices accessible to the file system.
16 */
17 @Immutable
18 public interface LogicalVolumeGroup {
19 /**
20 * Gets the logical volume group name.
21 *
22 * @return The name of the logical volume group.
23 */
24 String getName();
25
26 /**
27 * Gets a set of all physical volumes in this volume group.
28 *
29 * @return A set with the names of the physical volumes.
30 */
31 Set<String> getPhysicalVolumes();
32
33 /**
34 * Gets a map containing information about the logical volumes in the logical volume group, represented to the file
35 * system as block devices. The keyset for the map represents a collection of the logical volumes, while the values
36 * associated with these keys represent the physical volumes mapped to each logical volume (if known).
37 *
38 * @return A map with the logical volume names as the key, and a set of associated physical volume names as the
39 * value.
40 */
41 Map<String, Set<String>> getLogicalVolumes();
42 }