kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

centos安装kvm虚拟机

  • 最好在centos6装

  • TODO 虚拟机网桥连接没试

http://docs.openstack.org/zh_CN/image-guide/content/virt-install.html

安装

1
yum install qemu-kvm libvirt virt-manager

管理界面

1
virt-manager

图形化安装过程见: http://nmszh.blog.51cto.com/4609205/1539502

命令行创建安装

1
qemu-img create -f qcow2 ttt.img 10G
1
2
3
4
5
6
7
8
9
10
11
12
virt-install --virt-type kvm --name centos-6.4 --ram 1024 \
--cdrom=/data/CentOS-6.4-x86_64-netinstall.iso \
--disk path=/data/centos-6.4.qcow2,size=10,format=qcow2 \
--network network=default \
--graphics vnc,listen=0.0.0.0 --noautoconsole \
--os-type=linux --os-variant=rhel6

Starting install...
Creating
domain...  |    0 B     00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.

KVM 虚拟化使用 centos-6.4 名称,1024MB内存启动虚拟机。虚拟机还有一个关联文件/data/CentOS-6.4-x86_64-netinstall.iso 的虚拟的 CD-ROM,并拥有 10GB 的qcow2格式的硬盘,硬盘文件位置在 /data/centos-6.4.qcow2。虚拟机配置了网络使用 libvirt 的默认网络。且 VNC 服务监听所有的网卡,并且 libvirt 不会自动启动 VNC 客户端也不会显示字符界面控制台(–no-autoconsole)。最后,libvirt 将尝试以RHEL 6.x 发行版来优化虚拟机配置。

运行

1
virt-install --os-variant list

命令查看 --os-variant 允许的选项范围。

使用命令获取 VNC 端口号。

1
2
3
4
virsh vncdisplay vm-name

  # virsh vncdisplay centos-6.4
  :1

在上面的示例中,虚拟机 centos-6.4 使用 VNC 显示器 :1,对应的 TCP 端口是 5901。你应该使用本地 VNC 客户端连接到远程服务器的 :1 显示器并且完成安装步骤。

用vncviewer连接虚拟机完成安装

1
vncviewer IP:5901
  • 装好后会生成 /etc/libvirt/qemu/ttt.xml 配置文件,可以修改

http://os.51cto.com/art/201404/435193.htm

http://tianhao936.blog.51cto.com/1043670/1343767

虚拟机操作

常用virsh指令

1
2
3
4
5
6
7
8
9
1)virsh list               列出当前虚拟机列表,不包括未启动的
2)virsh list --all         列出所有虚拟机,包括所有已经定义的虚拟机
3)virsh start vm-name      启动虚拟机
4)virsh destroy vm-name    关闭虚拟机  
5)virsh undefine vm-name   删除虚拟机
6)virsh shutdown vm-name   停止虚拟机
7)virsh reboot vm-name     重启虚拟机
8)virsh edit vm-name       编辑虚拟机xml文件
9)virsh autostart vm-name  虚拟机随宿主机启动 

http://blog.csdn.net/justlinux2010/article/details/8977705

http://www.centoscn.com/image-text/config/2014/0801/3407.html


错误

1
Could not initialize SDL(No available video device) - exiting

需要在桌面环境运行qemu-kvm

vnc远程连接,远程登录服务器或者虚拟机

http://blog.csdn.net/gg296231363/article/details/6899655

服务器端

1 安装

1
yum install vnc* tigervnc tigervnc-server pixman pixman-devel libXfont

2

1
vi /etc/sysconfig/vncservers

修改成

1
2
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 800x600"

3 设置登录密码

1
vncpasswd

4

1
2
service vncserver start
service iptables stop

客户机端

1
vncviewer IP:PORT

centos5 有可能出现的错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ vncviewer 127.0.0.1:5900

VNC Viewer Free Edition 4.1.2 for X - built Apr 20 2011 12:04:25
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.

Mon Jul  6 14:16:43 2015
 CConn:       connected to host 127.0.0.1 port 5900
 CConnection: Server supports RFB protocol version 3.8 
 CConnection: Using RFB protocol version 3.8 
 TXImage:     Using default colormap and visual, TrueColor, depth 24. 
 CConn:       Using pixel format depth 6 (8bpp) rgb222
 CConn:       Using ZRLE encoding

Mon Jul  6 14:16:44 2015
 CConn:       Throughput 20000 kbit/s - changing to hextile encoding
 CConn:       Throughput 20000 kbit/s - changing to full colour
 CConn:       Using pixel format depth 24 (32bpp) little-endian rgb888
 CConn:       Using hextile encoding
unknown message type 98
 main:        unknown message type

加上 -FullColor 选项就好

1
$ vncviewer -FullColor 127.0.0.1:5900

不是必需

5

1
2
3
4
5
vi ~/.vnc/xstartup
gnome-session &   //添加gnome,使用gnome图形界面登录
#twm &            //注销默认的窗口管理器 简陋而且很多图形显示不了

service vncserver restart

crash kmem

一、kmem -s 查看slab

1
2
3
4
5
6
crash> kmem -s
CACHE            NAME                 OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE
...
ffff8808132d1ac0 request_sock_TCP         128          2        30      1     4k
ffff8808135e1400 sock_inode_cache         704        298       470     94     4k
...

二、kmem -S 查看slab中详细内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
crash> kmem -S request_sock_TCP
CACHE            NAME                 OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE
ffff8808132d1ac0 request_sock_TCP         128          2        30      1     4k
SLAB              MEMORY            TOTAL  ALLOCATED  FREE
ffff88078b9c6000  ffff88078b9c60c0     30          2    28
FREE / [ALLOCATED]
   ffff88078b9c60c0
   ffff88078b9c6140
   ffff88078b9c61c0
   ffff88078b9c6240
   ffff88078b9c62c0
   ffff88078b9c6340
   ffff88078b9c63c0
   ffff88078b9c6440
   ffff88078b9c64c0
   ffff88078b9c6540
   ffff88078b9c65c0
   ffff88078b9c6640
   ffff88078b9c66c0
  [ffff88078b9c6740]
  [ffff88078b9c67c0]
   ffff88078b9c6840
   ffff88078b9c68c0
   ffff88078b9c6940
   ffff88078b9c69c0
...

request_sock_TCP 是 struct request_sock 类型,所以对于已分配的地址可以直接查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
crash> struct request_sock 0xffff88078b9c6740
struct request_sock {
  dl_next = 0x0, 
  mss = 1460, 
  retrans = 0 '\000', 
  cookie_ts = 0 '\000', 
  window_clamp = 8388480, 
  rcv_wnd = 14600, 
  ts_recent = 0, 
  expires = 4302901768, 
  rsk_ops = 0xffffffff81c0e840 <tcp_request_sock_ops>, 
  sk = 0xffff880771dad800, 
  secid = 3039208612, 
  peer_secid = 3672081930
}

http://blog.csdn.net/u011279649/article/details/17529315