1. 在cmd命令行下进入VirtualBox的安装目录,使用“VBoxManage list hdds”命令,找到需要修改磁盘容量的虚拟机的img路径或UUID:
D:\Program Files\Oracle\VirtualBox>VBoxManage list hdds UUID: 4a43ca85-2d4b-4fca-919f-3bc0c1f6b307 Parent UUID: base Format: VDI Location: E:\CentOS.vdi State: created Type: normal Usage: CentOS(UUID: e9245daf-24a2-4ef1-9b0e-b0419d3cc739)
2. 修改虚拟机的磁盘空间
D:\Program Files\Oracle\VirtualBox>VBoxManage modifyhd"E:\CentOS.vdi" –resize 20480 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
"E:\CentOS.vdi"是需要修改的虚拟机路径,改为其UUID号也正确,20480是修改后的大小,单位为M,20480M=20G
3. 让虚拟机上CentOS知道磁盘容量已经增加
使用工具GParted,点击http://gparted.sourceforge.net/下载ISO镜像
在VirtualBox光驱中加载下载的gparted-live-0.16.1-1-amd64.iso镜像,设置为第一顺序启动
启动虚拟机CentOS进入GParted,双击桌面“GParted”即可看到有磁盘空间为未分配状态,点击“分区”→“新建”,选择“主分区”、“ext4”,再点击“Apply”,此时可看到新的分区/dev/sda4
4. 关闭GParted,在VirtualBox设置中将gparted-live-0.16.1-1-amd64.iso镜像卸载,再启动CentOS,进入CentOS系统
注意:进入系统后可能提示“没有正确安装GNOME电源管理器的默认配置”,这是由于系统用户空间不足造成的,此时不要使用普通用户登录,改用root用户登录,在root下修改用户空间磁盘容量;root用户登录后系统可能没有任何界面,此时可用ssh远程连接进行操作
5. 在CentOS终端中扩展逻辑分区(标粗体的vg_wsgzg需要更改为自己系统的名称,通过df –h –T可查看)
a. 使用“su –”切换到root用户(使用root用户登录省略)
b. 执行lvm pvcreate/dev/sda4
[root@localhost ~]# lvm pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created [root@localhost ~]# df -h -T 文件系统 类型 容量 已用 可用 已用%% 挂载点 /dev/mapper/vg_wsgzg-lv_root ext4 13G 13G 0 100% /
c. 执行lvmvgextend "vg_wsgzg" /dev/sda4添加/dev/sda4到卷组vg_wsgzg
[root@localhost ~]# lvm vgextend "vg_wsgzg" /dev/sda4 Volume group "vg_wsgzg" successfully extended
d. 执行lvresize -l+100%FREE /dev/mapper/vg_wsgzg-lv_root,扩展卷组vg_wsgzg下的lv_root卷组
[root@localhost ~]# lvresize -l +100%FREE /dev/mapper/vg_wsgzg-lv_root Extending logical volume lv_root to 17.53 GiB Logical volume lv_root successfully resized
e. 执行resize2fs/dev/mapper/vg_wsgzg-lv_root重新设置文件系统
[root@localhost ~]# resize2fs /dev/mapper/vg_wsgzg-lv_root resize2fs1.41.12 (17-May-2010) Filesystemat /dev/mapper/vg_wsgzg-lv_root is mounted on /; on-line resizing required olddesc_blocks = 1, new_desc_blocks = 2 Performingan on-line resize of /dev/mapper/vg_wsgzg-lv_root to 4595712 (4k) blocks. Thefilesystem on /dev/mapper/vg_wsgzg-lv_root is now 4595712 blocks long.
f. 执行df -h -T验证扩展磁盘容量
[root@localhost ~]# df -h -T 文件系统 类型 容量 已用 可用 已用%% 挂载点 /dev/mapper/vg_wsgzg-lv_root ext4 18G 13G 4.8G 73% /
6. 重启CentOS,磁盘容量扩展成功
linux文件挂载其实和windows文件共享原理差不多,由主机配置一个共享目录,客户端机器可以通过网络访问该共享目录。
下面以SUSE11为例子,简要描述下NFS文件挂载过程:
一、主机端(主机IP192.168.0.100)
1、准备工作,主机需要完成NFS环境搭建
安装:portmap-6.0+git20070716-31.16.x86_64.rpm (用作端口映射,把RPC程序号转化为Internet的端口号)
安装:nfs-kernel-server-1.2.1-2.6.6.x86_64.rpm (NFS服务)
2 设置共享目录
mkdir /opt/share
3、编辑exports文件 vi /etc/exports
后面追加
/opt/share 192.168.0.*(rw,no_root_squash)
这里可以配置单个IP,也可设置整个网段都可以访问(192.168.0.*),还可以设置多个网段(192.168.0.0/2)
下面是一些NFS共享的常用参数:
ro 只读访问
rw 读写访问
sync 所有数据在请求时写入共享
async NFS在写入数据前可以相应请求
secure NFS通过1024以下的安全TCP/IP端口发送
insecure NFS通过1024以上的端口发送
wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide 在NFS共享目录中不共享其子目录
no_hide 共享NFS目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID
4、启动服务
service rpcbind start
service nfsserver start
如果已经启动了服务,修改配置后需要重启
service rpcbind restart
service nfsserver restart
二、客户端
1、启动rpcbind服务
service rpcbind start
2、创建共享目录
mkdir /opt/getShare
3、挂载共享目录
mount -t nfs 192.168.0.100:/opt/share
/opt/getShare
nrpe被监控端运行定义命令正常,监控端运行
#/usr/local/nagios/libexec/check_nrpe -H 117.121.9.200 -c check_oracle_tablespace
错误提示: NRPE: Unable to read output
监控端运行:#/usr/local/nagios/libexec/check_nrpe -H 117.121.9.200
可以返回nrpe版本信息,说明nrpe通信正常。
被监控端 check_oracle_tablespace 的定义: /usr/local/nagios/etc/nrpe.cfg
command[check_oracle_tablespace]=/usr/bin/sudo /usr/local/nagios/libexec/check_tablespace.sh
脚本路径没有错,同时拥有执行权限。经过认真排查,应该编辑 /etc/sudoers文件
#vim /etc/sudoers
nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_tablespace.sh
同时得注释掉一下行,表示不需要控制终端
#Defaults requiretty
否则,仍然会出现:NRPE: Unable to read output 错误