storagepool add 参数:添加存储池条目(SQL 管理 API)

随同 admin()task() 函数,使用 storagepool add 参数来添加条目到存储池 GBase 8s 可用于自动地添加空间到现有存储空间的裸设备、熟文件或目录的集合)。

语法

元素 描述 关键考虑
path_name 当需要附加的存储空间时,服务器可使用的文件、目录或设备的路径。 您无需添加结尾斜杠(“/”)到目录名。

当运行 oninit 命令时,如果在您的环境中有环境变量,则您可使用该路径中的环境变量。

begin_offset 设备内 GBase 8s 可开始分配空间处的偏移量,以 KB 为单位。 如果您指定了到目录的路径,则必须指定 0 为偏移量。
total_size 在这个条目中 GBase 8s 可用的合计空间。服务器可从这个空间量分配多个 chunk。 请确保为目录的合计大小指定 0。如果您为目录指定非零的值,则 SQL 管理 API 命令返回错误提示。

如果您为文件或设备指定 0,则服务器会从该条目分配一个可扩展的 chunk。

chunk_size 从该设备、文件或目录可分配的 chunk 大小的最小值。 您可创建的最小 chunk 为 1000 K。因此,您可指定的最小 chunk 大小为 1000 K。

请参阅 admin() 和 task() 参数大小规范

priority 当服务器通过存储池查找空间时,该目录、文件或设备的优先级。
  • 1 = 高优先级
  • 2 = 中优先级
  • 3 = 低优先级
在服务器从较低优先级条目分配空间之前,会试图从高优先级条目分配空间。

用法

如果有必要添加新的 chunk 到存储空间,则服务器使用存储池中的条目。

当您添加条目到存储池时,可能先要对如何使用那个条目施加控制。例如,减少实例中的 chunk 数,您可能仅想从特定裸设备分配大型空间 chunk,且可能不想这些 chunk 是可扩展的。 在这种情况下,请配置那个存储池的 chunk 大小为大型的。

您可以添加下列类型的条目到存储池:

目录存储池条目通常归类为可扩展的,因为它没有合计大小。如果在该目录中自动地创建新的 chunk,则服务器标记那些 chunk 为可扩展的。当您添加目录存储池条目时,您可能想要小的 chunk 大小,因为服务器可扩展该目录中的任何 chunk,且较少的 chunk 大小可减少实例中浪费的空间量。

如果存储池条目在“高可用性数据复制”(HDR)主服务器上,则在该 HDR 集群中的所有辅助服务器上,该条目中相同的路径必须是可用的。

大小和偏移量的缺省单位为 KB。然而,在您可以下列示例中显示的任何方式指定信息:

示例:为目录添加存储池条目

下列命令添加名为 /region2/dbspaces 的目录,起始偏移量为 0,合计大小为 0,初始 chunk 大小为 20 MB,且为高优先级:

DATABASE sysadmin;
EXECUTE FUNCTION task("storagepool add", "/region2/dbspaces", "0", "0", 
"20000", "1");

示例:为定长裸设备添加存储池条目

下列命令将路径名为 /dev/raw/device1 且合计 500 MB 空间的定长裸设备添加到存储池。该命令指定起始偏移量为 50 MB,合计大小为 10 GB,最小分配到 chunk 100 MB,且为低优先级.

EXECUTE FUNCTION task("storagepool add", "/dev/rawdevice1", "50 MB",
 "10 GB", "100 MB", "3");

示例:为定长熟文件添加存储池条目

下列命令添加定长熟文件和 1 GB 空间到存储池。该命令指定起始偏移量为 0, 合计大小为 1000000 KB,最小分配到 chunk 50000 KB,且为中优先级:

EXECUTE FUNCTION task("storagepool add", "/ifmx_filesystem/storage/cooked7",
 "0", "1000000", "50000", "2");

当添加这个条目时,服务器试图将 cooked7 文件的大小增加到 1 GB。如果由于文件系统已满,服务器不能增加大小,则服务器返回错误消息且不添加条目到存储池。

GBase 8s 最初使用熟文件的一部分,但随着空间填满,如有必要可使用更多设备。

示例:为可扩展的熟文件添加存储池条目

下列命令添加路径名为 /ifmx/CHUNKFILES/cooked2 的熟文件。如果服务器使用这个条目,则服务器创建一个初始大小为 1 GB 的 chunk,且服务器自动地标记该 chunk 为可扩展的。

EXECUTE FUNCTION task("storagepool add", "/ifmx/CHUNKFILES/cooked2",
 "0", "0", "1 GB", "2");

示例:用路径中的环境变量添加存储池条目

下列示例包括路径中的环境变量。当运行 oninit 命令时,该变量出现在服务器环境中。

EXECUTE FUNCTION task("storagepool add", "$DBSDIR/chunk1",
 "0", "100000", "20000", "2");