StorCli工具学习记录
StorCLI(Storage Command Line Interface)是一款强大的命令行管理工具,用于管理和配置存储控制器。这一工具主要适用于Broadcom(原LSI)及Intel RAID控制器。
下面将详细介绍StorCLI的安装、特点、操作说明、常用场景、适用场景及具体应用。
安装
Windows
下载:访问Broadcom官方网站或Intel官方网站下载StorCLI工具。
- Intel版本:Intel StorCLI Standalone Utility 。
- Broadcom版本:Broadcom StorCLI for Windows。
安装:对于Windows系统,StorCLI以二进制格式提供,无需单独安装。
- 将下载的二进制文件复制到您希望运行StorCLI的目录中。
- 通过Windows PowerShell中的命令提示符运行StorCLI命令。
Linux
下载:从Broadcom或Intel官方网站下载适用于Linux的StorCLI版本。
- 访问上述链接,选择适用于Linux的版本进行下载。
安装:
- 解压下载的文件。
- 将解压后的二进制文件复制到/usr/local/bin或其他PATH环境变量包含的目录,以便在任何位置都能调用StorCLI命令。
VMware ESXi
下载:Broadcom提供了适用于VMware的StorCLI工具,可从Broadcom官方网站下载。
- 直接访问Broadcom StorCLI for VMware下载页面 [3]。
安装:
- 通过vSphere CLI或直接在ESXi Shell中运行特定的安装脚本。
- 详细的安装指南通常会包含在下载包中,或者可以在Broadcom技术文档网站上找到。
特点
- 跨平台支持:StorCLI支持Windows、Linux和VMware ESXi等多种操作系统。
- 全面的管理功能:可以进行逻辑驱动器的创建、删除、监控和管理;物理驱动器的状态检查;控制器日志的查看等。
- 易于自动化:由于是命令行工具,它易于集成到脚本中,实现自动化管理。
操作说明
- 查看控制器信息
这个命令会显示系统中所有控制器的列表和基本信息。
storcli /c0 show
- 创建RAID 0逻辑驱动器
storcli /c0 add vd r0 drives=2:0-1
- 查看虚拟驱动器信息
命令用于显示指定控制器上所有虚拟驱动器的详细信息。
storcli /c0 /vall show
- 查看特定控制器的物理驱动器信息
/c0指定控制器编号,/eall表示所有封装(Enclosure),/sall表示所有槽位(Slot)。这个命令用于查看指定控制器上所有物理驱动器的状态和信息。
storcli /c0 /eall /sall show
- 创建RAID 5逻辑驱动器
命令用于在控制器0上,使用封装2的槽位2至4的物理驱动器创建一个RAID 5虚拟驱动器
storcli /c0 add vd r5 drives=2:2-4
- 扩展虚拟驱动器
/v0指定要扩展的虚拟驱动器编号。这个命令将封装2的槽位5的物理驱动器添加到虚拟驱动器0中,以扩展其容量。
storcli /c0 /v0 expand drive=2:5
- 设置虚拟驱动器的缓存策略
命令开启虚拟驱动器0的写缓存。wrcache=off可用于关闭写缓存。
storcli /c0 /v0 set wrcache=on
- 固件更新
命令用于更新指定控制器的固件。<firmware_file_path>需要替换为固件文件的实际路径。
storcli /c0 download file=<firmware_file_path>
- 删除虚拟驱动器
命令强制删除编号为0的虚拟驱动器。
storcli /c0 /v0 del force
常用场景
- RAID配置:在没有图形界面的服务器上配置RAID,如Linux服务器或VMware ESXi主机。
- 状态监控:定期检查RAID阵列和物理硬盘的状态,确保数据安全。
- 性能优化:调整RAID阵列的缓存策略和条带大小,以优化性能。
- 固件更新:更新存储控制器的固件版本,保持系统稳定运行。
适用场景
StorCLI适用于需要精细管理存储控制器配置的场景,特别是在数据中心和企业环境中。对于需要自动化存储管理任务的系统管理员来说,StorCLI是一个宝贵的工具。
具体应用
自动化脚本:通过编写脚本来自动化创建RAID阵列、监控硬盘健康状态和执行定期维护任务。
故障排除:当存储系统出现问题时,使用StorCLI快速定位问题源头,如检查硬盘故障或RAID阵列状态。
性能调优:根据应用需求调整RAID策略,如更改写入缓存策略或调整条带大小来优化读写性能。
总之,StorCLI为存储管理提供了一个强大而灵活的工具,特别适合需要高度自定义和自动化管理存储解决方案的环境。
脚本示例
import subprocessdef run_storcli(cmd):"""执行StorCLI命令"""try:result = subprocess.run(cmd, shell=True, check=True, capture_output=True, text=True)print(result.stdout)except subprocess.CalledProcessError as e:print("错误输出:", e.stderr)def create_raid(controller, raid_level, drives):"""创建RAID"""cmd = f"storcli /c{controller} add vd {raid_level} drives={drives}"print(f"执行命令:{cmd}")run_storcli(cmd)def main_menu():print("请选择要创建的RAID类型:")print("1. RAID 0")print("2. RAID 1")print("3. RAID 5")print("4. RAID 10")print("5. 退出")choice = input("请输入选项(1-5):")return choiceif __name__ == "__main__":while True:user_choice = main_menu()if user_choice == "1":# 创建RAID 0create_raid(0, "r0", "2:0-1")elif user_choice == "2":# 创建RAID 1create_raid(0, "r1", "2:2-3")elif user_choice == "3":# 创建RAID 5create_raid(0, "r5", "2:4-6")elif user_choice == "4":# 创建RAID 10create_raid(0, "r10", "2:7-10")elif user_choice == "5":print("退出程序。")breakelse:print("无效的输入,请重新输入。")