热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

xenserver虚拟机如何共享nfs

操作流程:部署要求,主系统部署,基本操作,虚拟机故障修复,两种扩展linuxguest虚拟磁盘的方式,动态迁移,主系统nfs调整,快速复制。1.硬件要求64位双核都支持amd虚拟化或intelvt架构。本次测试硬件环境1台机器amd双核64位5000+,2G内存,160Gsat

操作流程:部署要求,主系统部署,基本操作,虚拟机故障修复,两种扩展linuxguest虚拟磁盘的方式,动态迁移,主系统nfs调整,快速复制。

1. 硬件要求 64位双核都支持amd虚拟化或intel vt架构。

本次测试硬件环境 1台机器amd 双核64位 5000+,2G内存,160Gsata硬盘 A机器 1台机器amd双核64位 4800+ ,2G内存, 160Gsata硬盘 B机器 百兆网络

2. 主系统部署
1. 在两个主机安装xenserver 5.0 Enterprise 包含linux支持组件
2. 配置两台机器网络a 192.168.1.2 xm12 ,b 192.168.1.3 xm12
3. 在我的工作机(win)192.168.1.4,安装xencenter分别连接两个主机

3. 基本操作
1.很简单通过xencenter的虚拟机模板可以部署一个公司所需要的系统,如redhat5 安装完毕后,关闭虚拟机。 可以进行guest host的复制,备份,转为模板。 一般常用复制和转为模板

4. 虚拟机故障修复
1.主系统崩溃,通过光盘12分钟内将恢复主系统
2.某个子系统崩溃,可以将其关机。把虚拟磁盘卸载再挂载到一个新建的虚拟系统上,进行数据迁移。确认完成迁移后,删除原始系统和原始盘。

5. linux guest扩容(windows的只需打开磁盘管理器即可管理)
1.首先关闭该虚拟机,xencenter中增大该虚拟机磁盘的容量

2.启动该guest,进入init2级别,fdisk Cl 列出当前分区信息,删除想要扩容的分区,再新建一次。写入然后重启。最后通过resize2fs来完成磁盘的大小更新。

下面以redhat默认安装的lvm卷和我们自行分区的基本卷为例分别讲述步骤

A. 在xencenter中增加虚拟磁盘的容量,然后开机进入init2 ,进行fdisk
Device Boot Start End Blocks Id System /dev/xvda1 * 1 13 104391 83 Linux
/dev/xvda2 14 1044 8281507+ 8e Linux LVM fdisk /dev/xvda
Command (m for help): d 删除第二个分区 Partition number (1-4): 2
Command (m for help): p Disk /dev/xvda: 5767 MB, 5767168000 bytes 255 heads, 63 sectors/track, 701 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/xvda1 * 1 13 104391 83 Linux 建立第二个分区
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (14-701, default 14): Using default value 14 Last cylinder or +size or +sizeM or +sizeK (14-701, default 701): Using default value 701
修改第二个分区为lvm卷 Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM)
写入分区表 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.
重启guest机器 进入init 2
pvresize -v /dev/xvda2 Using physical volume(s) on command line Archiving volume group “VolGroup00″ metadata (seqno 5). Resizing physical volume /dev/xvda2 from 115 to 168 extents. Resizing volume “/dev/xvda2″ to 11052336 sectors. Updating physical volume “/dev/xvda2″ Creating volume group backup “/etc/lvm/backup/VolGroup00″ (seqno 6). Physical volume “/dev/xvda2″ changed 1 physical volume(s) resized / 0 physical volume(s) not resized     重新识别卷大小
lvextend -l +100%FREE /dev/VolGroup00/LogVol00 Extending logical volume LogVol00 to 5.25 GB Logical volume LogVol00 successfully resized resize2fs /dev/VolGroup00/LogVol00 resize2fs 1.39 (29-May-2006) Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required Performing an on-line resize of /dev/VolGroup00/LogVol00 to 1376256 (4k) blocks. The filesystem on /dev/VolGroup00/LogVol00 is now 1376256 blocks long. 拓展卷利用所有空余空间
resize2fs /dev/mapper/VolGroup00-LogVol00 在线调整文件系统大小

B.传统分区,我们要增加/home 大小
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 15G 322M 14G 3% /
/dev/xvda2 173G 188M 164G 1% /home
/dev/xvda3 19G 1.8G 17G 10% /usr
/dev/xvda4 19G 237M 18G 2%    /var
tmpfs 252M 0 252M 0%
/dev/shm 和A中的fdisk删除要扩展的分区之前的步骤一致。 这里删除/dev/xvda2 再建立改分区,写入分区表,重启 进入init 2
umount /dev/xvda2
e2fsck -f /dev/xvda2
resize2fs /dev/xvda2 重启 该分区完成增大

6. 主系统nfs调整(目前我们的两台xenserver之间由于没磁盘整列或第三方nfs服务器无法实现数据共享,也就不能动态迁移,快速复制) 下面的操作将对其中一台xenserver进行改造以实现在上面建立NFS共享(本操作具有一定的危险性,请勿在重要生产服务器上使用:如将破坏xenserver的lvm存储,上面的虚拟机将无法动态增加容量,只能通过挂载新空盘增容) 这次我们只改造一台,用于临时测试和快速备份,恢复虚拟机到未改造的xenserver上。

使用xencenter连接xm13,点击console 输入xe sr-list type=lvm , 复制并记下sr的对应uuid 输入xe pbd-list sr-uuid=你的SR UUID 检测uuid对应的物理存储块pbd的uuid,复制并记下pbd对应uuid xe pbd-unplug uuid你的 PBD UUID 断开本地存储的sr xe sr-destroy uuid=你的SR UUID 移除本地存储的sr 至此你可以看到xencenter上面的local storage不见了。 再次输入xe sr-list type=lvm 发现 local storage的确不存在了。 建立ext3文件系统 Fdisk Cl Device Boot Start End Blocks Id System /dev/sda1 * 1 499 4008186 83 Linux /dev/sda2 500 998 4008217+ 83 Linux /dev/sda3 999 19457 148271917+ 83 Linu Mkfs Ct ext3 /dev/sda3 建立nfs 服务器,修改/etc/exports 使其异步存储,只能xenserver之间互访 修改 /etc/fstab 自动挂载 /dev/sda3 但重启后,你会发现分区挂载ok,nfs只能使用127.0.0.1连接。 停止防火墙或 修改/etc/sysconfig/iptables开放 111和 2049端口 xenserver mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive xenserver nfs System Error: Connection refused. 但你还是会发现可恶的nfs还是不能用。 看看下面的文件内容你就明白了。 cat /etc/sysconfig/network NETWORKING=yes #PMAP_ARGS=-l portmap只监听本地回环,注释掉即可 STATD_PORT=600 STATD_OUTGOING_PORT=601 HOSTNAME=xenserver-xm11 GATEWAYDEV=xenbr0 建立spool,使得两台机器在一个spool下,再建立共享NFS storage,至此xenserver的NFS双机共享完成。

7.动态迁移 我们将yum server建立在xenserver 13的NFS上,开机后使用putty连接yum并进行基本操作,在xencenter上选择migrate xm12。你会惊奇的发现putty的连接没断开,还能进行交互操作,貌似没有中断。不到两分钟yum已经完全跑在xm12上面了。

8.快速复制 Xenserver传统方式复制虚拟机和以模板建立虚拟机的速度挺慢的,快速方式是基于共享存储,速度的确让人惊喜。


推荐阅读
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • Python学习day3网络基础之网络协议篇
    一、互联网协议连接两台计算机之间的Internet实际上就是一系列统一的标准,这些标准称之为互联网协议,互联网的本质就是一系列网络协议。二、为什么要有互联网协议互联网协议就相当于计 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 本文提供了多种有效的方法来解决RPC(远程过程调用)服务器不可用的问题,包括通过修改注册表、使用SC命令以及利用故障恢复控制台等技术手段。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • ipsec 加密流程(二):ipsec初始化操作
    《openswan》专栏系列文章主要是记录openswan源码学习过程中的笔记。Author:叨陪鲤Email:vip_13031075266163.comDate:2020.1 ... [详细]
  • Linux 防火墙与端口管理必备命令
    在使用 Linux 系统进行服务部署和问题排查时,防火墙和端口管理是不可或缺的操作。本文将详细介绍如何查看防火墙状态、端口占用情况,以及如何开放和关闭端口,帮助初学者更好地掌握这些技能。 ... [详细]
  • 在深入探讨进程间通信技术时,本文重点解析了描述符传递的方法。通过详细分析发送和接收描述符的过程,文章首先介绍了发送描述符的具体步骤,并提供了相关函数原型。此外,还讨论了如何高效地在不同进程之间传输文件描述符,以实现资源的共享和同步。这一技术在多进程应用中具有重要意义,能够显著提升系统的性能和可靠性。 ... [详细]
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • 本文将探讨UDP(User Datagram Protocol)协议的特点及其适用场景,与常见的TCP协议进行对比,帮助读者更好地理解和选择合适的传输协议。 ... [详细]
author-avatar
尹子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有