百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

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

mhr18 2024-10-10 06:43 17 浏览 0 评论

  1. ZFS介绍

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

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

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

2.存储划盘并赋予主机


环境:Sparc S7-2 / Solaris11

Solaris虚拟机

##扫描新加磁盘
cfgadm -al
devfsadm -v 
format ---find new disk
root@nwmsdb:~# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c0t5000CCA07D07ACC8d0      <HGST-H101860SFSUN600G-A990-558.91GB>
     </HGST-H101860SFSUN600G-A990-558.91GB>
          /scsi_vhci/disk@g5000cca07d07acc8
          /dev/chassis/SYS/HDD0/disk
1. c0t5000CCA07D06C690d0      <HGST-H101860SFSUN600G-A990-558.91GB>
     </HGST-H101860SFSUN600G-A990-558.91GB>
          /scsi_vhci/disk@g5000cca07d06c690
          /dev/chassis/SYS/HDD1/disk
2. c1t0d0
          /pci@300/pci@1/pci@0/pci@2/usb@0/storage@1/disk@0,0
          /dev/chassis/SYS/MB/EUSB-DISK/disk
3. c0t60060E80122E7F0050402E7F00000027d0      <HITACHI-OPEN-V

     </HITACHI-OPEN-V-SUN-8301-100.00GB> ---new disk
          /scsi_vhci/ssd@g60060e80122e7f0050402e7f00000027
4. c0t60060E80122E7F0050402E7F00000028d0      <HITACHI-OPEN-V

     </HITACHI-OPEN-V-SUN-8301-450.00GB>---new disk
          /scsi_vhci/ssd@g60060e80122e7f0050402e7f00000028
5. c0t60060E801227C400504027C400000018d0      <HITACHI-OPEN-V

     </HITACHI-OPEN-V-SUN-8301-100.00GB>---old disk
          /scsi_vhci/ssd@g60060e801227c400504027c400000018
6. c0t60060E801227C400504027C400000019d0      <HITACHI-OPEN-V

     </HITACHI-OPEN-V-SUN-8301-400.00GB>---old disk
          /scsi_vhci/ssd@g60060e801227c400504027c400000019
Specify 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  UPTIME
primary          active     -n-cv-  UART    8     16G      0.7%  0.7%  7d 2h 23m
ldg1             active     -n----  5000    120   110G     0.1%  0.1%  7d 45m
root@nwmsdb:~#
root@nwmsdb:~#  ldm list-services
VCC
    NAME         LDOM         PORT-RANGE
    primary-vcc0 primary      5000-5100

VSW
    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 ldom

ldm add-vdsdev  /dev/dsk/c0t60060E80122E7F0050402E7F00000027d0s2 ldg1_data03@primary-vds0

ldm add-vdisk ldg1_data03 ldg1_data03@primary-vds0 ldg1

ldm add-vdsdev  /dev/dsk/c0t60060E80122E7F0050402E7F00000028d0s2 ldg1_data04@primary-vds0

ldm 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 ldg1
ldm rm-vdisk ldg1_data04 ldg1

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

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


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


[root@wmsdb:/]# format
Searching for disks...done


AVAILABLE 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 disk
Specify 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: ONLINE
status: 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% done
config:

        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

相关推荐

SQL入门知识篇(sql入门新手教程视频)

一、什么是数据库?什么是SQL?1、数据库:存放数据,可以很多人一起使用2、关系数据库:多张表+各表之间的关系3、一张表需要包含列、列名、行4、主键:一列(或一组列),其值能够唯一区分表中的每个行。5...

postgresql实现跨库查询-dblink的妙用

技术导语:用惯了oracle的dblink,转战postgresql,会一时摸不着头脑。本期就重点详细讲解postgresql如何安装dblink模块及如何使用dblink实现跨库查询。安装cont...

Oracle VM VirtualBox虚拟机软件(oracle vm virtualbox win10)

OracleVMVirtualBox是一款完全免费的虚拟机软件,下载银行有提供下载,软件支持安装windows、linux等多个操作系统,让用户可以在一台设备上实现多个操作系统的操作。同时软件有着...

开源 SPL 轻松应对 T+0(开源srs)

T+0问题T+0查询是指实时数据查询,数据查询统计时将涉及到最新产生的数据。在数据量不大时,T+0很容易完成,直接基于生产数据库查询就可以了。但是,当数据量积累到一定程度时,在生产库中进行大数据...

中小企业佳选正睿ZI1TS4-4536服务器评测

随着科技的不断发展,各行各业对于数据使用越加频繁,同时针对服务器的选择方面也就越来越多样化和细分化。那么对于我们用户来说,如何选择符合自身业务需求和最优性价比的产品呢?笔者将通过刚刚购买的这台服务器的...

MFC转QT:Qt基础知识(mfc和qt的区别)

1.Qt框架概述Qt的历史和版本Qt是一个跨平台的C++应用程序开发框架,由挪威公司Trolltech(现为QtCompany)于1991年创建。Qt的发展历程:1991年:Qt项目启动1995年...

数据库,QSqlTableModel(数据库有哪些)

QMYSQL——mysqlQSQLITE——sqliteQOICQ——orcale所需头文件.pro增加sql#include<QSqlDatabase>#include<Q...

python通过oledb连接dbf数据库(python连接jdbc)

起因:因为工作需要,需要读取dbf文件和系统数据中数据进行校对,因为知道dbf文件可以用sql查询,所以想能不能像mysql/oracle那样连接,再调用执行sql方法,通过一系列百度,尝试,最终通过...

Excel常用技能分享与探讨(5-宏与VBA简介 VBA与数据库)

在VBA(VisualBasicforApplications)中使用数据库(如Access、SQLServer、MySQL等)具有以下优点,适用于需要高效数据管理和复杂业务逻辑的场景:1....

Excel常用技能分享与探讨(5-宏与VBA简介 VBA与数据库-二)

以下是常见数据库软件的详细配置步骤,涵盖安装、驱动配置、服务启动及基本设置,确保VBA能够顺利连接:一、MicrosoftAccess适用场景:小型本地数据库,无需独立服务。配置步骤:安装Acces...

Windows Docker 安装(docker安装windows容器)

Docker并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。Docker实质上是在已经运行的Linux下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的L...

Windows下安装Ubuntu虚拟机方法(windows下安装ubuntu20)

在Windows下安装Ubuntu虚拟机。选择使OracleVMVirtualBox安装Ubuntu虚拟机。1.下载和安装OracleVMVirtualBox:访问OracleVMVir...

java入门教程1 - 安装和配置(win和linux)

windows安装和配置安装javahttps://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html目前大部分项目的...

Centos7 安装Tomcat8服务及配置jdk1.8教程

1、下载jdk1.8压缩包下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.htmltom...

全网最完整的免费java教程讲义(一)——java配置和安装

一,安装Java1)安装JDK要学习和使用java,首先需要安装JDK(JavaDevelopemntKit),相当于java安装包。Java的下载页在甲骨文官网上:https://www.or...

取消回复欢迎 发表评论: