手动新键一台虚拟机:
虚拟机的名字:nsd
CPU、内存、硬盘均默认
网络类型:private1
软件包选择:带GUI的服务器
分区:自动分区
######################################################
虚拟化概述
? virtualization 资源管理
– x个物理资源 --> y个逻辑资源
– 实现程度:完全、部分、硬件辅助(CPU)
######################################################
虚拟机nsd:搭建本地Yum仓库
1.服务端:挂载光盘
[[email protected] 桌面]# mount /dev/cdrom /mnt
[[email protected] 桌面]# ls /mnt
2.客户端:书写一个配置文件/etc/yum.repos.d/*.repo
[[email protected] 桌面]# vim /etc/yum.repos.d/abc.repo
[abc]
name=abc
baseurl=file:///mnt
enabled=1
gpgcheck=0
[[email protected] 桌面]# yum repolist
########################################################
yum软件组管理
? 使用RHEL7软件仓库的预设分组
– yum groups list [hidden] [组名]...
– yum groups info [组名]...
– yum groups install [组名]...
– yum groups remove [组名]
安装虚拟化服务器平台
? 主要软件组
Virtualization\ Client #虚拟化客户端
Virtualization\ Platform #虚拟化平台
Virtualization\ Hypervisor #虚拟化管理器
Virtualization\ Tools #虚拟化工具
[[email protected] 桌面]# yum -y groups install
Virtualization\ Client
Virtualization\ Platform
Virtualization\ Hypervisor
Virtualization\ Tools
######################################################
虚拟化服务:libvirtd
#######################################################
真机操作:
? 查看KVM节点(服务器)信息
– virsh nodeinfo
? 列出虚拟机
– virsh list [--all]
? 查看指定虚拟机的信息
– virsh dominfo 虚拟机名称
? 运行|重启|关闭指定的虚拟机
– virsh start|reboot|shutdown 虚拟机名称
? 强制关闭指定的虚拟机
– virsh destroy 虚拟机名称
[[email protected] 桌面]# virsh autostart nsd #设置开机自起动
[[email protected] 桌面]# virsh dominfo nsd
[[email protected] 桌面]# virsh autostart --disable nsd #关闭自起动
[[email protected] 桌面]# virsh dominfo nsd
#########################################################
删除唯一性的硬件设备
[[email protected] 桌面]# virsh destroy nsd
手动图形删除:两个 channel 设备(接口设备,具备唯一性)
##########################################################
一台KVM虚拟机的组成
– xml配置文件(虚拟机描述文件):定义虚拟机的名称、UUID、CPU、内
存、虚拟磁盘、网卡等各种参数设置
虚拟机描述文件默认路径: /etc/libvirt/qemu
– 磁盘镜像文件:保存虚拟机的操作系统及文档数据,
镜像路径取决于xml配置文件中的定义
磁盘镜像文件 默认路径: /var/lib/libvirt/images/
查看磁盘镜像文件信息
qemu-img info /var/lib/libvirt/images/nsd.qcow2
########################################################
手动快速创建一台虚拟机
1.创建新的磁盘文件
[[email protected] 桌面]# cd /var/lib/libvirt/images/
[[email protected] images]# cp nsd.qcow2 test01.qcow2
2.写新的虚拟机描述文件
[[email protected] images]# cd /etc/libvirt/qemu/
[[email protected] qemu]# cp nsd.xml test01.xml
[[email protected] qemu]# vim test01.xml
修改name、删除UUID整行、修改磁盘文件路径、删除MAC整行
3.导入虚拟机信息
[[email protected] /]# virsh define /etc/libvirt/qemu/test01.xml
[[email protected] /]# virsh list --all
[[email protected] /]# virsh start test01
#########################################################
导出xml配置文件
– 查看:virsh dumpxml 虚拟机名
– 备份:virsh dumpxml 虚拟机名 > 虚拟机名.xml
编辑虚拟机设置
? 对虚拟机的配置进行调整
– 编辑: virsh edit 虚拟机名
导出、修改、导入
####################################################
删除虚拟机
– virsh undefine 虚拟机名
virsh undefine test01
rm -rf /var/lib/libvirt/images/test01.qcow2
####################################################
COW技术原理
? Copy On Write,写时复制
– 直接映射原始盘的数据内容
– 对前端盘的修改不回写到原始盘
1.快速创建qcow前端盘
? qemu-img 通过 -b 选项复用指定后端盘
– qemu-img create -f qcow2 -b 后端盘 前端盘
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 -b nsd.qcow2 new01.qcow2
qemu-img info new01.qcow2
2.常见新的虚拟机描述文件
cd /etc/libvirt/qemu/
cp nsd.xml new01.xml
vim new01.xml
修改name、删除UUID整行、修改磁盘文件路径指定前端盘、删除MAC整行
3.导入新的虚拟机
virsh define /etc/libvirt/qemu/new01.xml
#######################################################
搭建新的教学环境
1.在真机上操作新建两台虚拟机
[[email protected] 桌面]# clone-vm7
Enter VM number: 1
[[email protected] 桌面]# clone-vm7
Enter VM number: 2
2.在真机上操作,随真机的启动而启用
[[email protected] 桌面]# virsh autostart A
[[email protected] 桌面]# virsh autostart B
3.以root身份进入虚拟机,配置两台虚拟机的网络地址参数,密码123456
虚拟机A:
IP地址:192.168.4.7/24
主机名:svr7.tedu.cn
虚拟机B:
IP地址:192.168.4.207/24
主机名:pc207.tedu.cn
4.真机利用Web服务提供Yum源(共享光盘所有内容)
[[email protected] 桌面]# ifconfig private1
[[email protected] 桌面]# rpm -q httpd
httpd-2.4.6-40.el7.x86_64
mkdir /var/www/html/rhel7
mount /ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/
cp -r /mnt/* /var/www/html/rhel7/
firefox http://127.0.0.1/rhel7
firefox http://192.168.4.254/rhel7
6.虚拟机A与虚拟机B指定Yum位置
[[email protected] ~]# vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0
[[email protected] ~]# vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=http://192.168.4.254/rhel7
enabled=1
gpgcheck=0
- 设置防火墙trusted与关闭SELinux
[[email protected] ~]# firewall-cmd --set-default-zone=trusted
[[email protected] ~]# setenforce 0 #当前修改为宽松模式
[[email protected] ~]# getenforce
Permissive
[[email protected] ~]# vim /etc/selinux/config
SELINUX=permissive
###########################################################
? 使用 guestmount 工具
– 支持离线挂载 raw、qcow2 格式虚拟机磁盘
? 基本用法
– guestmount -a 虚拟机磁盘路径 -i /挂载点
##########################################################
扩展的几个应用
/boot 存放系统引导必需的文件,包括内核、启动配置
/bin、/sbin 存放各种命令程序
/dev 存放硬盘、键盘、鼠标、光驱等各种设备文件
/etc 存放Linux系统及各种程序的配置文件
/root、/home/ 用户名 分别是管理员root、普通用户的默认家目录
/var 存放日志文件、邮箱目录等经常变化的文件
/proc 存放内存中的映射数据,不占用磁盘
/tmp 存放系统运行过程中使用的一些临时文件
###################################################
权限的数值表示
? 权限的数值化
– 基本权限:r = 4,w = 2,x = 1
虚拟机Svr7:
[[email protected] ~]# mkdir /nsd01
[[email protected] ~]# ls -ld /nsd01
drwxr-xr-x. 2 root root 6 12月 6 20:44 /nsd01
[[email protected] ~]# chmod 007 /nsd01
[[email protected] ~]# ls -ld /nsd01
d------rwx. 2 root root 6 12月 6 20:44 /nsd01
[[email protected] ~]# chmod 700 /nsd01
[[email protected] ~]# ls -ld /nsd01
drwx------. 2 root root 6 12月 6 20:44 /nsd01
[[email protected] ~]# chmod 750 /nsd01
[[email protected] ~]# ls -ld /nsd01
drwxr-x---. 2 root root 6 12月 6 20:44 /nsd01
################################################
自定义Yum仓库
1.自己下载的rpm包,真机的tools目录上传到虚拟机svr7
[[email protected] 桌面]# scp -r tools [email protected]:/root/
[email protected]‘s password:
2.虚拟机svr7查看
[[email protected] ~]# ls /root/tools/other/
3.仓库数据文件
[[email protected] ~]# createrepo /root/tools/other/
[[email protected] ~]# ls /root/tools/other/
4.书写客户端配置文件
[[email protected] ~]# vim /etc/yum.repos.d/rhel7.repo
[myrpm]
name=myrpm
baseurl=file:///root/tools/other
enabled=1
gpgcheck=0
[[email protected] ~]# yum -y install sl
[[email protected] ~]# rpm -ql sl #显示rpm安装清单
[[email protected] ~]# yum -y install cmatrix
[[email protected] ~]# rpm -ql cmatrix #显示rpm安装清单
[[email protected] ~]# cmatrix
[[email protected] ~]# yum -y install oneko
[[email protected] ~]# oneko
[[email protected] ~]# killall oneko
######################################################
? du,统计文件的占用空间
– du [选项]... [目录或文件]...
– -s:只统计每个参数所占用的总空间大小
– -h:提供易读容量单位(K、M等)
[[email protected] ~]# du -sh /root
[[email protected] ~]# du -sh /root /etc /var
######################################################
快捷方式(链接、连接): ln -s /路径/源文件 /路径/快捷方式的名字
ln -s /etc/sysconfig/network-scripts/ifcfg-eth0 /opt/network
ls -l /opt/
cat /opt/network
i节点:编号,唯一标识硬盘上一块存储区域
? ln,创建软连接
– 软连接 --> 原始文档 --> i节点 --> 文档数据
– ln -s 原始文件或目录 软连接文件
若原始文件或目录被删除,连接文件将失效
软连接可存放在不同分区/文件系统
? ln,创建硬连接
– 硬连接 --> i节点 --> 文档数据
– ln 原始文件 硬连接文件
若原始文件被删除,连接文件仍可用
硬连接与原始文件必须在同一分区/文件系统
只有硬连接不会产生新的文件,也不会单独占用新的磁盘空间
[[email protected] ~]# rm -rf /opt/*
[[email protected] ~]# echo 123 > /opt/A
[[email protected] ~]# ln -s /opt/A /opt/A1 #制作软连接快捷方式
[[email protected] ~]# ls /opt/
[[email protected] ~]# ln /opt/A /opt/A2 #制作硬连接快捷方式
[[email protected] ~]# ls /opt/
[[email protected] ~]# cp /opt/A /opt/A3 #复制新文件
[[email protected] ~]# ls /opt/
[[email protected] ~]# ls -i /opt/ #查看目录内容的i节点编号
[[email protected] ~]# rm -rf /opt/A #删除源文件
[[email protected] ~]# ls -i /opt/
[[email protected] ~]# cat /opt/A1 #软连接不可用
[[email protected] ~]# cat /opt/A2 #硬连接可用
[[email protected] ~]# cat /opt/A3 #复制新文件可用
########################################################
压缩和归档
zip :跨平台(Windows与Linux)
命令格式:zip [-r] /路径/备份文件.zip /路径/被归档的文档..
[[email protected] ~]# zip -r /opt/test01.zip /home/ /boot/
[[email protected] ~]# ls /opt
[[email protected] ~]# unzip /opt/test01.zip -d /mnt/
[[email protected] ~]# zip -r /opt/test02.zip /etc/selinux
[[email protected] ~]# ls /opt
[[email protected] ~]# unzip /opt/test02.zip /mnt
##########################################################
? date,查看/调整系统日期时间
– date +%F
– date +"%Y-%m-%d %H:%M:%S"
– date -s yyyy-mm-dd HH:MM:SS"
历史命令
管理/调用曾经执行过的命令
– histroy:查看历史命令列表
– history -c:清空历史命令
– !str:执行最近一次以str开头的历史命令
? 调整历史命令的数量
[[email protected] ~]# vim /etc/profile
HISTSIZE=1000 //默认记录1000条
###################################################
? man,格式化手册阅读工具
– 按 上 、 下 、 PgUp 、PgDn 键滚动及翻页
– 按 q 键退出
– 按 / 键向后查找关键词(n、N切换)
[[email protected] ~]# man mkdir
.. ..
[[email protected] ~]# man 5 passwd
5:配置文件帮助信息
#################################################
vim编辑技巧
光标跳转
Home 键、数字 0 跳转至行首
End 键 跳转到行尾
PgUp 键、PgDn 键 向上翻页、向下翻页
1G 或 gg 跳转到文件的首行
G 跳转到文件的末尾行
复制/粘贴/删除
yy、4yy 复制光标处的一行、4行
p 粘贴到光标处之后、之前
x 或 Delete键 删除光标处的单个字符
dd、6dd 删除光标处的一行、6行
d^ 从光标处之前删除至行首
d$ 从光标处删除到行尾
C(大写) 从光标处删除到行尾,并且进入 输入模式
查找/撤销/保存
/root 向后查找字符串“root”
n、N 跳至后/前一个结果
u 撤销最近的一次操作
Ctrl + r 取消前一次撤销操作
ZZ (大写) 保存修改并退出
######################################################
末行模式操作
:r /etc/filesystems 读入其他文件内容
[[email protected] ~]# echo 123 > /opt/1.txt
[[email protected] ~]# echo abc > /opt/2.txt
[[email protected] ~]# vim /opt/1.txt
:r /opt/2.txt #读入/opt/2.txt内容到当前文本文件内容
字符串替换
:s/root/admin 替换当前行第一个“root”
:s/root/admin/g 替换当前行所有的“root”
:1,8 s/root/admin/g 替换第1-8行所有的“root”
:% s/root/admin/g 替换文件内所有的“root”
开关参数的控制
:set nu|nonu 显示/不显示行号
:set ai|noai 启用/关闭自动缩进
#########################################################
源码编译安装
? 主要优点
– 获得软件的最新版,及时修复bug
– 软件功能可按需选择/定制
RPM软件包:rpm命令 yum仓库
gcc、make 进行配置
源代码软件包-------------------> 可以执行的程序------------>运行安装
步骤1:安装gcc与make编译工具
[[email protected] ~]# yum -y install gcc make
[[email protected] ~]# rpm -q gcc
[[email protected] ~]# rpm -q make
步骤2:tar解包,释放源代码至指定目录
rm -rf /opt/*
tar -xf /root/tools/inotify-tools-3.13.tar.gz -C /opt/
ls /opt
ls /opt/inotify-tools-3.13
步骤3: ./configure 配置,指定安装目录/功能模块等选项
cd /opt/inotify-tools-3.13
./configure --prefix=/mnt/myrpm #配置功能,指定安装位置
checking for gcc... no #gcc没有安装
步骤4: make 编译,生成可执行的二进制程序文件
解压目录下
make
步骤5: make install 安装,将编译好的文件复制到安装目录
make install
ls /mnt/
ls /mnt/myrpm/
ls /mnt/myrpm/bin/
########################################################
Set UID
? 附加在属主的 x 位上
– 属主的权限标识会变为 s
– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限
[[email protected] /]# which mkdir
/usr/bin/mkdir
[[email protected] /]# cp /usr/bin/mkdir /usr/bin/abcdir
[[email protected] /]# chmod u+s /usr/bin/abcdir
[[email protected] /]# ls -l /usr/bin/abcdir
[[email protected] /]# useradd student
[[email protected] /]# su - student
[[email protected] ~]$ mkdir nsd01
[[email protected] ~]$ ls -l
[[email protected] ~]$ abcdir nsd02
[[email protected] ~]$ ls -l
[[email protected] ~]$ exit
########################################################
查看网络接口信息
netstat -anptu
-a:显示所有接口信息
-n:以数字方式显示
-p:显示程序信息
-t:tcp连接
-u:udp连接
########################################################
原文地址:http://blog.51cto.com/13433592/2060571