cinder-manage

控制和管理 OpenStack 块存储

作者:

openstack-discuss@lists.openstack.org

版权:

OpenStack 基金会

手册章节:

1

手册组:

云计算

概要

cinder-manage <类别> <操作> [<参数>]

描述

cinder-manage 提供对 cinder 数据库迁移的控制,并提供一个接口来获取有关 cinder 当前状态的信息。有关 OpenStack Cinder 的更多信息,请访问 OpenStack Cinder

选项

执行 cinder-manage 命令的标准模式是: cinder-manage <类别> <命令> [<参数>]

例如,要获取当前正在运行的 cinder 服务列表: cinder-manage service list

不带参数运行以查看可用命令类别列表: cinder-manage

下面列出了类别及其详细说明。

您也可以使用类别参数(例如 ‘db’)来查看该类别下的所有命令列表: cinder-manage db

这些部分描述了 cinder-manage 的可用类别和参数。

Cinder 配额

Cinder 配额有时会不同步,虽然 Cinder 中有一些机制,在适当配置的情况下,会尝试重新同步配额,但它们并不完美,并且容易出现竞态条件,因此它们可能导致刷新配额的准确性不尽如人意。

cinder-manage quota 命令旨在帮助管理这些问题,同时允许对何时以及哪些配额被修复进行更精细地控制。

检查配额和预留是否正确。

cinder-manage quota check [-h] [--project-id PROJECT_ID]

接受的参数为

--project-id PROJECT_ID
                      The ID of the project where we want to sync the quotas
                      (defaults to all projects).

此命令检查特定项目(通过传递 --project-id)或所有项目的配额和预留,以查看它们是否不同步。

检查还将查找重复的条目。

一种将此操作与 sync 操作结合使用的方法是为所有项目运行检查,记下不同步的项目,然后逐个间隔性地同步它们,以允许 cinder 半正常运行。

修复配额和预留

cinder-manage quota sync [-h] [--project-id PROJECT_ID]

接受的参数为

--project-id PROJECT_ID
                      The ID of the project where we want to sync the quotas
                      (defaults to all projects).

此命令刷新特定项目或所有项目的现有配额使用量和预留计数。

刷新还将删除重复的条目。

此操作最好在 Cinder 未运行时执行,但也可以在 Cinder 服务运行时执行。

每个项目的配额同步都使用不同的事务,因此操作失败只会回滚当前项目的更改。

Cinder 数据库

cinder-manage db version

打印当前的数据库版本。

cinder-manage db sync [--bump-versions] [version]

将数据库同步到最新版本。这也是创建数据库的标准方式。

此命令在调用时解释以下选项

version 数据库版本

--bump-versions

在进行离线升级时更新 RPC 和对象版本,这样我们就无需在升级后两次重启服务即可防止 ServiceTooOld 异常。

cinder-manage db purge [<天数>]

清除数据库中标记为已删除且早于指定天数的条目。

cinder-manage db online_data_migrations [--max_count <n>]

分批执行数据库在线数据迁移,以实现版本之间的数据库升级。

此命令在调用时解释以下选项

--max_count     Maximum number of objects to migrate. If not specified, all
                possible migrations will be completed, in batches of 50 at a
                time.

如果无法(进一步)进行更新,则返回退出状态 0;如果使用了 --max_count 选项并且成功完成了一些更新(即使其他更新产生了错误),则返回 1;如果某些更新产生了错误且在上一次尝试的批次中没有其他迁移能够生效,则返回 2;如果提供了无效输入(例如,非数字 max-count),则返回 127。

此命令应在升级数据库架构后运行。如果它以部分更新退出(退出状态 1),则应再次调用它,即使某些更新最初产生了错误,因为某些更新可能依赖于其他更新的完成。如果它以状态 2 退出,则需要干预来解决导致剩余更新失败的问题。只有当退出状态为 0 时,才认为它已成功完成。

Cinder 卷

cinder-manage volume delete <volume_id>

删除卷,而不先检查卷是否可用。

cinder-manage volume update_host --currenthost <current host> --newhost <new host>

更新与指定主机关联的所有卷的主机名。

cinder-manage volume update_service

升级 cinder 时,随着现有的 cinder-volume 主机升级,数据库中会创建新的服务条目。在某些情况下,volumes 表中的行会保留对旧服务的引用,这可能导致在清理数据库时无法删除旧服务。此命令可确保所有 cinder-volume 主机上的所有卷都具有更新的服务引用。

Cinder 主机

cinder-manage host list [<zone>]

显示所有物理主机及其区域的列表。可选的区域参数允许按请求的区域过滤列表。

Cinder 服务

cinder-manage service list

显示所有 cinder 服务及其主机、区域、状态、状态以及信息最后更新时间。

cinder-manage service remove <service> <host>

从指定主机移除指定的 cinder 服务。

Cinder 备份

cinder-manage backup list

显示所有备份(包括正在进行的备份)以及备份操作正在运行的主机。

cinder-manage backup update_backup_host --currenthost <current host> --newhost <new host>

更新与指定主机关联的所有备份的主机名。

Cinder 版本

cinder-manage version list

显示 cinder 运行的代码库版本。

Cinder 配置

cinder-manage config list [<param>]

显示 Cinder 的当前配置参数(选项)。可选的 flag 参数可用于显示一个参数的配置。

Cinder 工具

cinder-manage util clean_locks [-h] [--services-offline]

清除当前主机上由驱动程序和 cinder 服务创建并用于卷、快照和当前主机上备份服务的相关文件锁。

应在运行 Cinder 服务(API、调度程序、卷、备份)的任何主机上运行,并且可以与 Cinder 服务运行或停止时一起运行。

如果服务正在运行,它将检查 Cinder 数据库中的现有资源,以便仅删除不再存在的资源(删除文件是安全的)。

对于备份,知道何时可以删除启动锁的方法是检查文件名中的 PGRP 当前是否正在运行 cinder-backup。

在服务离线时删除锁会更快,因为无需检查数据库或正在运行的进程。

默认假设服务是在线的,必须传递 --services-offline 来指定它们是离线的。

--services-offline 一起运行命令的常见用例是在启动任何 cinder 服务之前,作为服务单元在启动时调用。通常,命令会在没有 --services-offline 参数的情况下手动调用,或从 cron 作业调用。

警告

当 Cinder 服务仍在运行时传递 --services-offline 会破坏锁定机制,并可能导致正在进行的 Cinder 操作出现不良行为。

注意

此命令不清除 DLM 锁(除非使用文件锁),因为这些锁不会留下剩余锁。

文件

cinder.conf 文件包含 python-gflags 形式的配置信息。

cinder-manage.log 文件记录了 cinder-manage 的输出。

请参阅

错误

  • Cinder 托管在 Launchpad 上,您可以在 Bugs : Cinder 上查看当前错误。