Oracle小机利用ZFS实现在线存储迁移

1.ZFS介绍

    2004年:Sun Microsystems 开始研发 ZFS 文件系统。ZFS 最初是作为 Solaris 操作系统的一部分而开发的,旨在解决传统文件系统的一些限制和问题。

  1. 2010年:Oracle 收购了 Sun 公司,从而获得了 ZFS 文件系统的所有权和控制权。Oracle 继续支持和开发 ZFS 文件系统,并将其作为 Solaris 操作系统的关键特性之一。Oracle 将 ZFS 文件系统引入到其硬件产品线中,包括 Sparc系列型机,Exadata存储等。这些产品提供了基于 ZFS 的存储解决方案,为企业提供了高度可靠、高性能和易于管理的存储平台。

  2. ZFS的pool的管理和Oracle的ASM有一定相似性,可以在一个pool内实现加盘,删盘从而实现存储的无缝切换,本文以一个范例介绍这个​功能。

2.存储划盘并赋予主机

  环境:Sparc S7-2 / Solaris11 

  Solaris虚拟机

##扫描新加磁盘cfgadm -aldevfsadm -v format ---find new diskroot@nwmsdb:~# formatSearching for disks...doneAVAILABLE DISK SELECTIONS:0. c0t5000CCA07D07ACC8d0      <HGST-H101860SFSUN600G-A990-558.91GB>     </HGST-H101860SFSUN600G-A990-558.91GB>          /scsi_vhci/disk@g5000cca07d07acc8          /dev/chassis/SYS/HDD0/disk1. c0t5000CCA07D06C690d0      <HGST-H101860SFSUN600G-A990-558.91GB>     </HGST-H101860SFSUN600G-A990-558.91GB>          /scsi_vhci/disk@g5000cca07d06c690          /dev/chassis/SYS/HDD1/disk2. c1t0d0          /pci@300/pci@1/pci@0/pci@2/usb@0/storage@1/disk@0,0          /dev/chassis/SYS/MB/EUSB-DISK/disk3. c0t60060E80122E7F0050402E7F00000027d0      <HITACHI-OPEN-V     </HITACHI-OPEN-V-SUN-8301-100.00GB> ---new disk          /scsi_vhci/ssd@g60060e80122e7f0050402e7f000000274. c0t60060E80122E7F0050402E7F00000028d0      <HITACHI-OPEN-V     </HITACHI-OPEN-V-SUN-8301-450.00GB>---new disk          /scsi_vhci/ssd@g60060e80122e7f0050402e7f000000285. c0t60060E801227C400504027C400000018d0      <HITACHI-OPEN-V     </HITACHI-OPEN-V-SUN-8301-100.00GB>---old disk          /scsi_vhci/ssd@g60060e801227c400504027c4000000186. c0t60060E801227C400504027C400000019d0      <HITACHI-OPEN-V     </HITACHI-OPEN-V-SUN-8301-400.00GB>---old disk          /scsi_vhci/ssd@g60060e801227c400504027c400000019Specify disk (enter its number):     

如果识别不到 可能需要重启主机,主机重启,该主机上的虚拟机会被挂起,

但是不会重启

Check ldm

更多关于solaris vm参考文件《Oracle VM Server for SPARC 3.1 管理指南》  

root@nwmsdb:~#  ldm list         NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIMEprimary          active     -n-cv-  UART    8     16G      0.7%  0.7%  7d 2h 23mldg1             active     -n----  5000    120   110G     0.1%  0.1%  7d 45mroot@nwmsdb:~#root@nwmsdb:~#  ldm list-servicesVCC    NAME         LDOM         PORT-RANGE    primary-vcc0 primary      5000-5100VSW    NAME         LDOM         MACADDRESS          NET-DEV   DVID|PVID|VIDs    ----         ----         ----------          -------   --------------    primary-vsw0 primary      00:14:4f:fa:2b:c1   net0      1|1|--       VDS    NAME         LDOM         VOLUME         OPTIONS          MPGROUP        DEVICE    primary-vds0 primary      ldg1_bootdisk                                  /dev/zvol/dsk/rpool/ldg1/disk1                              ldg1_data01                                    /dev/dsk/c0t60060E801227C400504027C400000018d0s0                              ldg1_data02                                    /dev/dsk/c0t60060E801227C400504027C400000019d0s0----该虚拟机原有的两块磁盘root@nwmsdb:~#

 

3.将物理磁盘付给本机的虚拟机  

从服务域导出虚拟磁盘后端。---语法# ldm add-vdsdev [-fq] [options={ro,slice,excl}] [mpgroup=mpgroup] \backend volume-name@service-name将后端指定给来宾域。# ldm add-vdisk [timeout=seconds] [id=disk-id] disk-name volume-name@service-name ldomldm add-vdsdev  /dev/dsk/c0t60060E80122E7F0050402E7F00000027d0s2 ldg1_data03@primary-vds0ldm add-vdisk ldg1_data03 ldg1_data03@primary-vds0 ldg1ldm add-vdsdev  /dev/dsk/c0t60060E80122E7F0050402E7F00000028d0s2 ldg1_data04@primary-vds0ldm add-vdisk ldg1_data04 ldg1_data04@primary-vds0 ldg1

▼ 如何将物理磁盘作为虚拟磁盘导出

注意– 配置虚拟磁盘时,确保每个虚拟磁盘引用不同的物理(后端)资源,如物理磁盘、磁盘分片、文件或卷。某些磁盘(如光纤通道和SAS)本身具有“双端口”,即同一个磁盘可以被两个不同的路径引用。确保分配给不同域的路径不会引用同一个物理磁盘。

将物理磁盘作为虚拟磁盘导出。

例如,要将物理磁盘c1t48d0 作为虚拟磁盘导出,则必须导出该磁盘的分片2

(c1t48d0s2)。primary# ldm add-vdsdev /dev/dsk/c1t48d0s2 c1t48d0@primary-vds0

将磁盘指定给来宾域。例如,将磁盘(pdisk) 指定给来宾域ldg1。

primary# ldm add-vdisk pdisk c1t48d0@primary-vds0 ldg1

来宾域启动并运行Oracle Solaris OS 之后,检验该磁盘是否可供访问且是否为完整磁盘。完整磁盘是一个具有八(8) 个分片的常规磁盘。

例如,要检查的磁盘为c0d1。    

ldg1# ls -1 /dev/dsk/c0d1s*/dev/dsk/c0d1s0/dev/dsk/c0d1s1/dev/dsk/c0d1s2/dev/dsk/c0d1s3/dev/dsk/c0d1s4/dev/dsk/c0d1s5/dev/dsk/c0d1s6/dev/dsk/c0d1s7

--如何删除虚拟磁盘

--从来宾域删除虚拟磁盘。

ldm rm-vdisk ldg1_data03 ldg1ldm rm-vdisk ldg1_data04 ldg1

--停止从服务域导出相应的后端。

ldm rm-vdsdev ldg1_data03@primary-vds0ldm rm-vdsdev ldg1_data04@primary-vds0

          

4.在虚拟机上发现新加磁盘

[root@wmsdb:/]# formatSearching for disks...doneAVAILABLE DISK SELECTIONS:       0. c0d0          /virtual-devices@100/channel-devices@200/disk@0       1. c0d1          /virtual-devices@100/channel-devices@200/disk@1       2. c0d2          /virtual-devices@100/channel-devices@200/disk@2       3. c0d3      <HITACHI-OPEN-V     </HITACHI-OPEN-V-SUN-8301-100.00GB>          /virtual-devices@100/channel-devices@200/disk@3       4. c0d4      <HITACHI-OPEN-V     </HITACHI-OPEN-V-SUN-8301-450.00GB>          /virtual-devices@100/channel-devices@200/disk@4       ------new diskSpecify disk (enter its number):  

5.利用zfs 将新盘替换掉原有盘 实现存储迁移

5.1,增加一个镜像盘到pool    

 zpool attach arch_pool c0d1 c0d3 zpool attach data_pool c0d2 c0d4 [root@wmsdb:/]# zpool status data_pool  --check mirror status  pool: data_pool state: ONLINEstatus: One or more devices is currently being resilvered.  The pool will        continue to function, possibly in a degraded state.action: Wait for the resilver to complete. scan: resilver in progress since Mon Feb  3 15:44:51 2020    165G scanned out of 341G at 45.3M/s, 1h6m to go    165G resilvered, 48.49% doneconfig:        NAME        STATE     READ WRITE CKSUM        data_pool   ONLINE       0     0     0          mirror-0  ONLINE       0     0     0            c0d2    ONLINE       0     0     0            c0d4    ONLINE       0     0     0  (resilvering)

同步完成后 可以删除旧盘

5.2,删除原磁盘

 zpool detach arch_pool c0d1 zpool detach data_pool c0d2

5.3,可以将第二块盘的容量扩展出来(这步可以放在删除原磁盘c1t1d0之后做)

 zpool set autoexpand=on arch_pool zpool set autoexpand=on data_pool

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node 中的 nextTick 和 vue 中的 nextTick 的区别

node 中的 nextTick node 中的 nextTick 是 node 自带全局的变量 process 的一个方法&#xff0c;process.nextTick 是一个微任务&#xff0c;在 node 的所有微任务中最先执行&#xff0c;是优先级最高的微任务。浏览器中是没有这一个方法的。 vue 中的 nextTick vue 中的 n…

只为兴趣,2024年你该学什么编程?

讲动人的故事,写懂人的代码 当你想学编程但不是特别关心找工作的时候,选哪种语言学完全取决于你自己的目标、兴趣和能找到的学习资料。一个很重要的点,别只学一种语言啊!毕竟,"门门都懂,样样皆通",每种编程语言都有自己的优点和适合的用途,多学几种可以让你的…

鸿蒙开发 一 (二)、熟悉鸿蒙之剑 ArkTS

ArkTS是HarmonyOS主要应用开发语言&#xff0c;以后也别在弄那个 java 和鸿蒙的混合版了&#xff0c; 没必要浪费时间&#xff0c; 一步到位&#xff0c; 学新的吧。 简介 ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;保…

网络工程师(强化训练)-网络互联与互联网

网络工程师 以下关于OSPF路由协议的描述中&#xff0c;错误的是向整个网络中每一个路由器发送链路代价信息。相比于TCP&#xff0c;UDP的优势为开销较小。以太网可以传送最大的TCP段为1480字节。IP数据报经过MTU较小的网络时需要分片。假设一个大小为1500字节的报文分为2个较小…

【如何应用OpenCV对图像进行二值化】

使用OpenCV进行图像二值化是一个常见的图像处理任务。以下是一个简单的步骤说明&#xff0c;以及相应的Python代码示例。 步骤说明&#xff1a; 读取图像&#xff1a;首先&#xff0c;使用OpenCV的imread函数读取图像。灰度化&#xff1a;将彩色图像转换为灰度图像&#xff0…

LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)

【LetMeFly】1702.修改后的最大二进制字符串&#xff1a;脑筋急转弯&#xff08;构造&#xff0c;贪心&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary &#xff0c;它仅有 0 或者 1 组…

Day 20 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉…

【鸿蒙千帆起】《开心消消乐》完成鸿蒙原生应用开发,创新多端联动用户体验

《开心消消乐》已经完成鸿蒙原生应用开发&#xff0c;乐元素成为率先完成鸿蒙原生应用开发的20游戏厂商之一。作为一款经典游戏&#xff0c;《开心消消乐》已经拥有8亿玩家&#xff0c;加入鸿蒙原生应用生态&#xff0c;将为其带来更优的游戏性能和更多创新体验。自9月25日华为…

中国500米分辨率月最大EVI数据集

增强型植被指数&#xff08;EVI&#xff09;是在归一化植被指数&#xff08;NDVI&#xff09;改善出来的&#xff0c;根据大气校正所包含的影像因子大气分子、气溶胶、薄云、水汽和臭氧等因素进行全面的大气校正&#xff0c;EVI大气校正分三步&#xff0c;第一步是去云处理。第…

结构体和结构体指针的区别

1.定义区别 结构体的定义如下&#xff1a; struct 结构体名 {数据类型 成员变量名1;数据类型 成员变量名2;// 可以有更多的成员变量 };例如&#xff0c;定义一个表示学生的结构体&#xff1a; struct Student {int id;char name[20];int age; };上述定义了一个名为Student的…

Glide系列-自定义ModuleLoader

在当今快速发展的移动应用领域&#xff0c;图片的高效加载和显示对于提供流畅用户体验至关重要。Glide作为一款强大的图片加载库&#xff0c;已经成为Android开发者的首选工具之一。但是&#xff0c;你有没有遇到过Glide默认不支持的模型类型&#xff0c;或者需要对图片加载过程…

【SQL Sever】3. 用户管理 / 权限管理

1. 创建登录名/用户/角色 在SQL Server中&#xff0c;创建用户通常涉及几个步骤。 首先&#xff0c;你需要创建一个登录名&#xff0c;然后你可以基于这个登录名在数据库中创建一个用户。 以下是如何做到这一点的步骤和相应的SQL语句&#xff1a; 创建登录名 首先&#xff0c…

什么是尾调用优化

尾调用优化&#xff08;Tail Call Optimization&#xff0c;TCO&#xff09;是一种编译器或解释器的优化技术&#xff0c;旨在减少函数调用的内存消耗。尾调用发生在一个函数的最后一个操作是调用另一个函数时。在这种情况下&#xff0c;如果编译器能够优化&#xff0c;它可以将…

Centos离线安装ansible

Centos离线安装ansible 1、首先是互联网环境&#xff0c;安装python&#xff0c;创建虚拟环境&#xff0c;更新pip和setuptools python3 -m venv venv_2 # 此处 venv_2 也是自定义的虚拟环境名字 退出虚拟环境deactivate 进入虚拟环境source ~/ansible/bin/activate pip i…

Python零基础从小白打怪升级中~~~~~~~文件和文件夹的操作 (1)

第七节&#xff1a;文件和文件夹的操作 一、IO流&#xff08;Stream&#xff09; 通过“流”的形式允许计算机程序使用相同的方式来访问不同的输入/输出源。stream是从起源&#xff08;source&#xff09;到接收的&#xff08;sink&#xff09;的有序数据。我们这里把输入/输…

Vue3中ref,setup辨析

setup参考&#xff1a;vue3-setup-基本使用_vue3 setup mounted-CSDN博客 Vue3中的ref是一个函数&#xff0c;用于在setup函数中创建一个响应式的变量。ref函数接受一个初始值&#xff0c;返回一个响应式的对象。在setup函数中可以通过ref函数创建响应式变量&#xff0c;并将其…

企业鸿蒙原生应用元服务备案实操基本材料要求

一、要提前准备的主要材料包括 域名&#xff0c;服务器&#xff0c;包名&#xff0c;公钥&#xff0c;MD5值&#xff0c;法人身份证正反两面&#xff0c;邮箱&#xff0c;手机号2个。 域名是备案过的&#xff0c;应为要求域名能打开&#xff0c;还要悬挂备案号。 操作时要提前沟…

目标检测——瓶装白酒疵品检测数据集

一、重要性及意义 瓶装白酒疵品检测在白酒生产过程中具有极其重要的地位&#xff0c;其重要性和意义主要体现在以下几个方面&#xff1a; 首先&#xff0c;瓶装白酒疵品检测是保障消费者权益的关键环节。白酒作为消费者日常饮用的酒类之一&#xff0c;其品质直接关系到消费者…

【电控笔记4】拉普拉斯-传递函数-pid

数据标幺化 拉普拉斯变换 欧拉公式 常见s变换 s变换性质 pid分析 p控制&#xff0c;存在稳态误差 可以求出p的取值范围p>-1&#xff0c;否则发散 pi消除稳态误差 把kp换成Gs 只用pi控制&#xff0c;不加微分的原因&#xff1a; 微分之后&#xff0c;噪声增大高频噪声频率…

Linux上的chmod命令

chmod 是一个常用的Unix和类Unix操作系统命令&#xff0c;用于修改文件或目录的权限。chmod 命令允许系统管理员或文件所有者定义文件或目录的访问权限&#xff0c;包括读取、写入和执行权限。这对于确保文件的安全性和保护用户数据非常重要。 chmod命令的基本语法 chmod [op…