virtualbox配置共享文件

一、安装增强功能套件

二、配置windows上的共享文件夹,如图:


系统管理 virtual box iostat ssh_ssh


三、将共享文件夹mount到Linux虚拟机的mount point,比如/mnt:

mount -t vboxsf win_h /mnt


四、扩展vdi文件的大小

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd d:\Linux-Desktop.vdi

--resize 80000

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%


C:\Program Files\Oracle\VirtualBox>

但是查看D:\Linux-Desktop。vdi没有改变。测试失败。不得不重新创建一个虚拟硬盘。

===========================================================================================

ssh原理

hostA生成公钥-密钥对:

在任意路径下执行:ssh-keygen -t rsa

该命令会创建/home/$USER/.ssh目录(如果没有的话),在.ssh目录下生成id_rsa和id_rsa.pub共2个文件(如果是ssh-keygen -t dsa,则生成id_dsa和id_dsa.pub)。

在hostB的/home/$USER/.ssh目录下,创建空文件authorized_keys(如果没有的话),将hostA的id_rsa.pub的内容添加到authorized_keys文件.

hostA通过ssh向hostB发起连接,hostB生成一个随机数,并用hostA的公钥加密,发送给hostA,hostA用自己的密钥解密,并将结果传给hostB,hostB确认无误后,允许hostA建立连接。


ssh -l inst1 192.168.155.150 "hostname;echo '\n this is `hostname`'"


cat /etc/ssh/sshd_config

#PermitRootLogin yes

#ClientAliveInterval 300



==========================================================================================

iostat -x -m

小技巧:你知道iostat是从哪里得到IO相关信息的吗?使用strace命令能跟踪到答案:

shell> strace -eopen iostat
open("/proc/diskstats", O_RDONLY)

util是设备的利用率(1s内多少时间用于处理IO)。如果它接近100%,通常说明设备能力趋于饱和(并不绝对,比如设备有写缓存)。有时候可能会出现大于100%的情况,这多半是计算时四舍五入引起的,但如果是磁盘阵列等多盘系统,因为具有并发IO操作的能力,也会出现大于100%的情况。

svctm是平均每次请求的服务时间。从源代码里可以看出:(r/s+w/s)*(svctm/1000)=util。举例子:如果util达到100%,那么此时svctm=1000/(r/s+w/s),假设IOPS是1000,那么svctm大概在1毫秒左右,如果长时间大于这个数值,说明系统出了问题。不过前面已经说过在磁盘阵列等多盘系统中util可能出现偏大的情况,所以svctm相应的也可能偏大。

await是平均每次请求的等待时间。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。

avgqu-sz是平均请求队列的长度。毫无疑问,队列长度越短越好。

说明:svctm参数在未来某个版本的iostat会被删除,详见官方文档

iostat有顺序IO,随机IO之分

任何I/O操作都需要一定的时间,而且这些时间对于硬盘来说是确定的,它包含磁盘旋转的延时RDrotation delay)和磁头搜索时间DSdisk seek)。RD由磁盘转速(RPM)决定。RD是磁盘旋转一周所需时间的一半。如RPM10000.



RPS=RPM/60=166



1/166=0.0006=6ms 磁盘旋转一周要6毫秒



RD=6ms/2=3ms



磁盘平均搜索时间是3ms,数据传输的平均延时是2ms,这样一次I/O操作的平均时间是:



3ms+3ms+2ms=8ms



IOPS=1000/8=125 这块磁盘的每秒IO数(IOPS)为125。所以对于10000RPM的磁盘来说它所能承受的IO操作在IOPS120150之间。如果系统的I/O请求超过这个值,就会使磁盘成为系统的瓶颈。



对与系统而言有两种不同种类的I/O压力,连续I/O和随机I/O



连续I/O常常出现在企业级数据库这样的应用中,需要连续的读取大量数据。这种系统的性能依靠它读取和移动数据的大小和快慢。我们用iostat来监控,会发现rKB/s,wKB/s会很高。



Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util



/dev/sda 0.00 12891.43 0.00 105.71 0.00 106080.00 0.00 53040.00 1003.46 1099.43 3442.43 26.49 280.00



从输出我们看到w/s=105,wKB/s=53040.所以53040/105=505KB per I/O.



对于随机I/O的系统来说性能的关注点不在搜传输数据的大小和速度,而是在磁盘的IOPS。这类系统的I/O请求比较小但是数量很大,如Web服务器和Mail服务器。他们的性能主要依赖每秒钟可处理的请求数:



# iostat -x 1



avg-cpu: %user %nice %sys %idle



2.04 0.00 97.96 0.00



Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util



/dev/sda 0.00 633.67 3.06 102.31 24.49 5281.63 12.24 2640.82 288.89 73.67 113.89 27.22 50.00



从输出我们看到w/s=102,wKB/s=2640.所以2640/102=23KB per I/O.因此对于连续I/O系统来说我们要关注系统读取大量数据的能力即KB per request.对于随机I/O系统我们注重IOPS.