openstack在线迁移

本文详细介绍了如何在多台机器上实现openstack在线迁移,包括构建NFS服务器、客户端配置、迁移前的libvirt配置及迁移过程。通过在每台机器上添加主机名和IP地址、设置NFS服务、验证NFS连接可用性、配置libvirt等步骤,实现资源的平滑迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

群邮件中的,还没有验证。

------------------ 原始邮件 ------------------
发件人: "101859673"< 101859673@qq.com>;
发送时间: 2012年7月29日(星期天) 中午11:39
收件人: "宁"< 770702469@qq.com>;
主题: openstack在线迁移

openstack在线迁移
 
需要结构:
一台nfs服务器 该服务器不要安装任何openstack组件
其他机器为nova计算节点,作为nfs客户端
 
1,在每台机器/etc/hosts下面
添加其他机器的名称以及对应的IP 同时也添加自己的机器名以及对外的IP
例如
opc-OptiPlex-990 192.168.1.3
 
 
测试每台机器互相可以ping主机名
 
2,nfs服务器构建
sudo apt-get install nfs-kernel-server nfs-commin nis
 
其中nis服务器为用户ID的映射
修改/etc/default/nis
NISSERVER=master
 
NISCLIENT=false
 
修改/etc/yp.conf
domain <your-hostname> server <your-hostname>
 
修改/etc/netgroup
myclients (hostname1,,) (hostname2,,)
 
sudo /usr/lib/yp/ypinit -m
会提示是否添加其他主机服务器 ctrl+d 忽略
 
确认 /etc/ypserv.securenets
有0.0.0.0
 
建立共享数据库
 
sudo mkdir /nfs
 
修改/etc/exports
/nfs *(rw,sync,no_root_squash,no_subtree_check,fsid=0)
sudo /etc/init.d/nfs-kernel-server restart
sudo /etc/init.d/idmapd restart
 
sudo chmod o+x /nfs
 
在节点
sudo apt-get install nfs-common nis
 
修改/etc/default/nfs-common
NEED_IDMAPD=yes
NEED_GSSD=no
 
在节点的/etc/fstab
 
<nfs-hostname>:/ /NOVA-INST-DIR/instances nfs4 defaults 0 0
 
测试一下:
在节点输入
mkdir test
sudo mount <nfs-ip>:/nfs ~/test
 
进入test文件夹 建立一个文件
 
去nfs服务器看看 /nfs文件夹下应该可以看到刚在在节点建立文件
 
sudo umount -v ~/test
 
sudo mount -a -v
 
在去instances文件夹下看看 有没有刚才的文件
 
如果有说明nfs可行
 
3,迁移前配置
修改每台节点libvirt
修改/etc/libvirt/libvirtd.conf 文件如下:
改前 : #listen_tls = 0
改后: listen_tls = 0
改前 : #listen_tcp = 1
改后: listen_tcp = 1
添加: auth_tcp = “none”

修改 /etc/init/libvirt-bin.conf
改前 : exec /usr/sbin/libvirtd $libvirtd_opts
改后 : exec /usr/sbin/libvirtd -d -l

修改 /etc/default/libvirt-bin
改前 :libvirtd_opts=” -d”
改后 :libvirtd_opts=” -d -l”

修改/etc/libvirtd/qemu.conf
去掉下面三行注释
#vnc_listen = “0.0.0.0″ 此行可可不修改
user = “root”
group = “root"

sudo /etc/init.d/libvirt-bin restart

在节点上:
sudo nova-manage host list

host                         zone
control                      nova
compute2                     nova
compute1                     nova

 

nova-list获取instance的ID

查看资源sudo nova-manage service describe_resource HostC

开始迁移nova live-migration <instance-id> HostC

### OpenStack 虚拟机迁移教程与 API 在 OpenStack 中,虚拟机迁移是一种常见的操作,用于优化资源使用或维护环境。OpenStack 提供了冷迁移和热迁移两种方式来实现虚拟机的迁移[^1]。 #### 冷迁移迁移是指将处于关机状态的虚拟机从一个计算节点迁移到另一个计算节点。这种迁移不会影响存储卷的位置,但需要关闭虚拟机实例。冷迁移的命令如下: ```bash openstack server migrate --os-compute-api-version 2.30 <server-id> ``` 上述命令通过 OpenStack CLI 发起冷迁移请求,其中 `--os-compute-api-version` 参数指定了 API 版本[^1]。 #### 热迁移迁移(也称为在线迁移)允许在不停止虚拟机的情况下将其从一个计算节点迁移到另一个计算节点。这要求共享存储环境的支持,例如 NFS 或 Ceph。热迁移的命令如下: ```bash openstack server migrate --live <destination-host> <server-id> ``` 在执行热迁移时,目标主机必须具有足够的资源,并且源主机和目标主机之间的网络连接必须正常[^2]。 #### API 调用 除了通过 CLI 执行迁移外,还可以通过 OpenStack 的 Compute API 来调用迁移功能。以下是热迁移的 API 示例: ```http POST /servers/{server_id}/action HTTP/1.1 Host: compute.example.com Content-Type: application/json X-Auth-Token: {auth_token} { "os-migrateLive": { "host": "destination_host", "block_migration": false, "disk_over_commit": false } } ``` 上述 API 请求中,`os-migrateLive` 表示发起热迁移操作,`host` 参数指定目标主机名称,`block_migration` 和 `disk_over_commit` 控制迁移行为[^3]。 #### 迁移过程详解 虚拟机迁移的过程可以分为以下几个阶段: 1. **预迁移阶段**:通知目标主机准备接收虚拟机实例,并返回相关数据。 2. **实际迁移阶段**:执行虚拟机内存、磁盘等资源的迁移。 3. **后迁移阶段**:确认迁移成功后,清理源主机上的虚拟机资源。 4. **回滚阶段**:如果迁移失败,则销毁目标主机上的临时数据,并恢复源主机的状态[^3]。 #### 注意事项 - 热迁移需要共享存储支持,否则必须启用块设备迁移(`block_migration=True`)。 - 目标主机必须满足虚拟机运行所需的资源条件。 - 在大规模环境中,建议监控迁移过程中的性能指标以避免对生产环境造成影响。 ```python # 示例代码:通过 Python SDK 实现热迁移 from openstack import connection conn = connection.Connection(auth_url="http://auth.example.com/v3", project_name="demo", username="admin", password="password", user_domain_id="default", project_domain_id="default") server = conn.compute.find_server("server_id") conn.compute.live_migrate_server(server, host="destination_host", block_migration=False) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值