通过实例对一些常用的VMControl&vmtouch命令行进行剖析介绍
2013-12-02 22:45
295 查看
摘要:作为 IBM Systems Director 的高级管理插件,VMControl 提供了一系列的 PowerVM 虚拟化环境的管理和监控功能,用户可以可以通过 Director 的图形界面(GUI)使用这些功能,但对一些习惯于命令行操作的高级 Power 系统管理员来说,使用命令行操作可以节约界面
熟练使用常用的 VMControl 命令行,结合一些必要的界面操作,无疑可以使日常管理维护工作更加得心应手,事半功倍。本文将通过实例对一些常用的 VMControl 命令行进行介绍。
在 VMControl 的最新版本中,提供了较为完善的 PowerVM 虚拟化环境的管理和监控方案,用户可以对每台 Power
服务器进行虚拟机(LPAR)
创建、捕获(Capture)、部署(Deploy)、迁移 (Relocation)等生命周期的管理;也可以把被管理的 Power 服务器组合成为服务器池(System
Pool),作为一个整体进行管理,从而把部署在服务器池中的虚拟机组合成 Workload,进行 Workload 的生命周期管理、优化和监控。对服务器池和 Workload 的管理和监控,也就是 VMControl 的核心功能。
一般而言,服务器池中的 Workload 捕获(Capture)和部署(Deploy)可以帮助用户轻松实现一个和多个业务系统的安装和备份;而 Resilience(弹性)的设置可以实现 Workload 的 HA(High Availability,高可用性),当某台服务器发生一些故障时,能够自动对服务器上的 Workload 进行迁移,使得运行在 Workload 上的业务无中断的运行;在本文中我们将会以这些常用的管理任务为例探讨如何使用
VMControl 命令行,简化系统管理员日常工作。
下面首先对 VMControl 的命令行做简单的介绍。
VMControl 命令行一览
常用的 VMControl 命令行通常是在 vsm、availability、sccli 和 imagemgrcli 几个命令包(Bundle)下,可以通过 Director 的命令行 lsbundle 查询这几个命令包下的命令行列表。
这几个命令包的输出,也即是 VMControl 命令行的全集,包含了将近 70 个相关的命令行。可见,VMControl 还是提供了相当丰富的命令行供管理员使用。
根据命令行应用对象的不同,这些命令行可以分为五类:服务器池相关命令、Workload 相关命令、虚拟镜像相关命令、存储相关命令、虚拟机相关命令和服务器相关命令。下表给出了各分类的一些常用命令行,使用这些 VMControl 命令行,可以完成最基本的 Power 服务器的管理任务。
表 1.VMControl 命令行的分类和部分命令行
对于这里黑体标注的命令行,将会在后面通过实例以帮助了解其用法。
一般而言,通过命令行的作用对象和命名规则,我们也可以猜到大部分命令的用途,比如命令行带前缀 ch(change)表示改变,rm(remove)表示删除,ls(list)表示列出,add 表示添加,start 表示启动,有兴趣的读者也可以通过结合使用命令行 man < 命令 > ,或者 –help 查询获得命令行使用指南。
下面我们将通过实例学习上表中这些常用的命令行,包括准备 VMControl 管理环境,对管理的 Power 服务器创建服务器池,部署和创建 Workload 到服务器池,配置 Workload 的属性自动实现 Workload 的动态迁移;并且,我们也会对 Workload 进行备份,对 Workload 的生命周期进行管理,并对资源使用情况进行监控。
vmtouch is a tool for learning about and controlling the file system cache of unix and unix-like systems.
从介绍可以看出vmtouch是一个管理和控制Unix和类Unix文件系统缓存的工具。
vmtouch的主要功能如下:
查看一个文件(或者目录)哪些部分在内存中;
把文件调入内存;
把文件清除出内存;
把文件锁住在内存中而不被换出到磁盘上;
由于vmtouch是个比较小众的命令,很多Linux发行版不带这个命令,所以如果要使用这个命令要自己先编译一个。
抄了几个vmtouch的用法:
1. 看看/bin目录有多少内容在内存中
2. 看看某文件(big-dataset.txt)有多少在内存中
然后读入部分文件,
然后在用vmtouch查看一下:
我们可以看出big-datset.txt开始时没有数据在内存中,在用tail命令读入了部分数据后,有19MB的数据进入了内存。
3. 把文件(a.txt)清除出内存
vmtouch主要作用是做数据的warmup,即对于将要用到的数据,通过vmtouch把它们事先读入内存,而不是在需要时再从硬盘上读入,这样可以提高系统效率。
对于vmtouch的实现,一个核心的函数是mincore(), 看一下它的manual:
mincore - determine whether pages are resident in memory
#include <unistd.h>
#include <sys/mman.h>
int mincore(void *addr, size_t length, unsigned char *vec)
mincore()需要调用者传入文件的地址(通常由mmap()返回),它会把文件在内存中的情况写在vec中。
熟练使用常用的 VMControl 命令行,结合一些必要的界面操作,无疑可以使日常管理维护工作更加得心应手,事半功倍。本文将通过实例对一些常用的 VMControl 命令行进行介绍。
在 VMControl 的最新版本中,提供了较为完善的 PowerVM 虚拟化环境的管理和监控方案,用户可以对每台 Power
服务器进行虚拟机(LPAR)
创建、捕获(Capture)、部署(Deploy)、迁移 (Relocation)等生命周期的管理;也可以把被管理的 Power 服务器组合成为服务器池(System
Pool),作为一个整体进行管理,从而把部署在服务器池中的虚拟机组合成 Workload,进行 Workload 的生命周期管理、优化和监控。对服务器池和 Workload 的管理和监控,也就是 VMControl 的核心功能。
一般而言,服务器池中的 Workload 捕获(Capture)和部署(Deploy)可以帮助用户轻松实现一个和多个业务系统的安装和备份;而 Resilience(弹性)的设置可以实现 Workload 的 HA(High Availability,高可用性),当某台服务器发生一些故障时,能够自动对服务器上的 Workload 进行迁移,使得运行在 Workload 上的业务无中断的运行;在本文中我们将会以这些常用的管理任务为例探讨如何使用
VMControl 命令行,简化系统管理员日常工作。
下面首先对 VMControl 的命令行做简单的介绍。
VMControl 命令行一览
常用的 VMControl 命令行通常是在 vsm、availability、sccli 和 imagemgrcli 几个命令包(Bundle)下,可以通过 Director 的命令行 lsbundle 查询这几个命令包下的命令行列表。
# smcli lsbundle | grep -i imagemgrcli # smcli lsbundle | grep -i vsm # smcli lsbundle | grep – I Availability
这几个命令包的输出,也即是 VMControl 命令行的全集,包含了将近 70 个相关的命令行。可见,VMControl 还是提供了相当丰富的命令行供管理员使用。
根据命令行应用对象的不同,这些命令行可以分为五类:服务器池相关命令、Workload 相关命令、虚拟镜像相关命令、存储相关命令、虚拟机相关命令和服务器相关命令。下表给出了各分类的一些常用命令行,使用这些 VMControl 命令行,可以完成最基本的 Power 服务器的管理任务。
表 1.VMControl 命令行的分类和部分命令行
命令行应用相关对象 | 常用命令行 |
---|---|
服务器池 | imagemgrcli/mksyspool imagemgrcli/lscandidatestorage |
Workload | imagemgrcli/lsworkloads imagemgrcli/chworkload |
虚拟镜像 | imagemgrcli/lsva imagemgrcli/lscustomization imagemgrcli/deployva imagemgrcli/lsrepos imagemgrcli/lscapsrv imagemgrcli/captureva |
存储 | sccli/dumpstcfg sccli/svsrelationships sccli/svsresources |
虚拟机 | vsm/lsvrtsys |
服务器 | Availability/mkfarm |
一般而言,通过命令行的作用对象和命名规则,我们也可以猜到大部分命令的用途,比如命令行带前缀 ch(change)表示改变,rm(remove)表示删除,ls(list)表示列出,add 表示添加,start 表示启动,有兴趣的读者也可以通过结合使用命令行 man < 命令 > ,或者 –help 查询获得命令行使用指南。
下面我们将通过实例学习上表中这些常用的命令行,包括准备 VMControl 管理环境,对管理的 Power 服务器创建服务器池,部署和创建 Workload 到服务器池,配置 Workload 的属性自动实现 Workload 的动态迁移;并且,我们也会对 Workload 进行备份,对 Workload 的生命周期进行管理,并对资源使用情况进行监控。
vmtouch is a tool for learning about and controlling the file system cache of unix and unix-like systems.
从介绍可以看出vmtouch是一个管理和控制Unix和类Unix文件系统缓存的工具。
vmtouch的主要功能如下:
查看一个文件(或者目录)哪些部分在内存中;
把文件调入内存;
把文件清除出内存;
把文件锁住在内存中而不被换出到磁盘上;
由于vmtouch是个比较小众的命令,很多Linux发行版不带这个命令,所以如果要使用这个命令要自己先编译一个。
抄了几个vmtouch的用法:
1. 看看/bin目录有多少内容在内存中
$ vmtouch /bin/ Files: 92 Directories: 1 Resident Pages: 348/1307 1M/5M 26.6% Elapsed: 0.003426 seconds
2. 看看某文件(big-dataset.txt)有多少在内存中
How much of big-dataset.txt is currently in memory? $ vmtouch -v big-dataset.txt big-dataset.txt [ ] 0/42116 Files: 1 Directories: 0 Resident Pages: 0/42116 0/164M 0% Elapsed: 0.005182 seconds
然后读入部分文件,
$ tail -n 10000 big-dataset.txt > /dev/null
然后在用vmtouch查看一下:
$ vmtouch -v big-dataset.txt big-dataset.txt [ oOOOOOOO] 4950/42116 Files: 1 Directories: 0 Resident Pages: 4950/42116 19M/164M 11.8% Elapsed: 0.006706 seconds
我们可以看出big-datset.txt开始时没有数据在内存中,在用tail命令读入了部分数据后,有19MB的数据进入了内存。
3. 把文件(a.txt)清除出内存
$ vmtouch -ve a.txt Evicting a.txt Files: 1 Directories: 0 Evicted Pages: 42116 (164M) Elapsed: 0.076824 seconds
vmtouch主要作用是做数据的warmup,即对于将要用到的数据,通过vmtouch把它们事先读入内存,而不是在需要时再从硬盘上读入,这样可以提高系统效率。
对于vmtouch的实现,一个核心的函数是mincore(), 看一下它的manual:
mincore - determine whether pages are resident in memory
#include <unistd.h>
#include <sys/mman.h>
int mincore(void *addr, size_t length, unsigned char *vec)
mincore()需要调用者传入文件的地址(通常由mmap()返回),它会把文件在内存中的情况写在vec中。
相关文章推荐
- 通过一个实例介绍 ArrayList 中常用API的用法
- Java集合框架的知识总结(1) 说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析。 1、综述 所有集合类
- 一些小点------通过按位与&,或| 来对字符进行大小写转换
- 通过一个实例介绍 LinkedList 中常用API的用法
- 一些常用的mysql语句实例-以后照写
- RelativeLayout相对布局属性及一些常用属性介绍
- 如何使用json在前后台进行数据传输实例介绍
- Sqlite简单介绍与一些常用的例子
- Iptables 规则 一些简单实例和详细介绍转载
- 如何使用json在前后台进行数据传输实例介绍
- C++中一些不常用的前缀介绍
- 针对通过 SSH 连接到 Azure Linux VM 时发生的失败、错误或被拒绝问题进行故障排除
- 一些在英文面试中常用的自我介绍
- oracle和sqlserver在过程sql中通过select对变量进行赋值的区别及实例
- UI中一些不常用的控件UIActivityIndicatorView、UIProgressView、UISegmentedControl、UIStepper、UISwitch、UITextView、UIAlertController
- Jquery工作常用实例 使用AJAX使网页进行异步更新
- jQuery一些常用特效方法使用实例
- for循环结构常用实例介绍
- 通过一个实例来介绍JSF技术
- javascript——touch事件介绍与实例演示