Oracle小机利用ZFS实现在线存储迁移
ccwgpt 2024-12-20 11:31 38 浏览 0 评论
- 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
相关推荐
- 腾讯开源框架TarsCpp-rpc设计分析-server(二)
-
2Tars协议2.1是什么借用官方说法:TARS编码协议是一种数据编解码规则,它将整形、枚举值、字符串、序列、字典、自定义结构体等数据类型按照一定的规则编码到二进制数据流中。对端接收到二进制数据流...
- 微服务调用为什么用RPC框架,http不更简单吗?
-
简单点,HTTP是协议,RPC是概念!实现RPC可以基于HTTP协议(Feign),TCP协议(Netty),RMI协议(Soap),WebService(XML—RPC)框架。传输过程中,也因为序列...
- go-zero:开箱即用的微服务框架(gin框架微服务)
-
go-zero是一个集成了各种工程实践的Web和rpc框架,它的弹性设计保障了大并发服务端的稳定性,并且已经经过了充分的实战检验。go-zero在设计时遵循了“工具大于约定和文档”的理...
- SOFARPC :高性能、高扩展性、生产级的 Java RPC 框架
-
#暑期创作大赛#SOFARPC是一个高性能、高扩展性、生产级的JavaRPC框架。在蚂蚁金服,SOFARPC已经使用了十多年,已经发展了五代。SOFARPC致力于简化应用程序之间的RPC...
- 自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记
-
痛点1.bsf底层依赖springcloud,影响bsf更新springboot新版本和整体最新技术版本升级。2.eureka已经闭源,且框架设计较重,同时引入eureka会自行引入较多sprin...
- Rust语言从入门到精通系列 - Tonic RPC框架入门实战
-
Rust语言是一种系统级语言,被誉为“没有丧失性能的安全语言”。Rust语言的优势在于其内存安全机制,在编译时就能保证程序的内存安全。Tonic模块是Rust语言的一个RPC(RemoteProce...
- 腾讯开源框架TarsCpp-rpc设计分析-client(一)
-
前言Tars是腾讯开源的微服务平台,包含了一个高性能的rpc框架和服务治理平台,TarsCpp是其C++版本。对于以C++为主要开发语言,同时还想深入了解rpc和微服务框架具体实现的同学来说,Tars...
- 设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
-
为啥要开发RPC框架事情是这样的,在开发这个RPC框架之前,我花费了不少时间算是对Dubbo框架彻底研究透彻了。冰河在撸透了Dubbo2.x和Dubbo3.x的源码之后,本来想给大家写一个Dubbo源...
- rpc框架使用教程,超级稳定好用,大厂都在使用
-
rpc是什么远程调用协议如何使用导入依赖<dependency><groupId>org.apache.dubbo</groupId><art...
- Layui 框架实战:动态加载 Select 与二级联动全解析
-
在现代Web开发中,下拉选择框(Select)是用户输入数据时不可或缺的组件。很多时候,我们需要的选项并非静态写死在HTML中,而是需要根据业务逻辑从后端动态获取。更有甚者,我们可能需要实现“...
- 15个能为你节省数百小时的前端设计神器,从UI库到文档生成
-
无论你是刚开始开发之旅的新手,还是疲于应付生产期限的资深程序员,有一个真理始终不变:正确的工具能彻底改变你的工作流程。多年来,我测试了数百个开发工具——有些实用,大多数平庸。但有一批免费网站经受住了时...
- Layui与WinForm通用权限管理系统全解析
-
嘿,小伙伴们,今天咱们来聊聊Layui和WinForm这两个框架在通用权限管理系统中的应用。别担心,我会尽量用简单易懂的语言来讲解,保证让大家都能跟上节奏!首先说说Layui。Layui是一个前端UI...
- 纯Python构建精美UI!MonsterUI让前端开发效率飙升
-
“无需CSS知识,告别类名记忆,11行代码实现专业级卡片组件”在传统Web开发中,构建美观界面需要同时掌握HTML、CSS、JavaScript三剑客,开发者不得不在多种语言间频繁切换。即使使用Boo...
- WebTUI:将终端用户界面(TUI)之美带到浏览器的CSS库
-
在当今Web技术飞速发展的时代,界面设计愈发复杂多样。然而,随着现代化工具的广泛使用,一些开发者开始回归极简风格,追求一种简洁而富有韵味的设计。WebTUI正是这样一款CSS库,它将经典的终...
- 人教版二年级下册生字描红汇总(拼音+笔顺+描红),可打印!
-
可定制内容,评论区留言。本次整理的为人教版二年级下册所有生字,共计300个;写字是小学阶段一项重要的基本功训练,把汉字写得正确、工整、美观,可以提高运用汉字这一交际工具的准确性和效率。对小学生进行写字...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 腾讯开源框架TarsCpp-rpc设计分析-server(二)
- 微服务调用为什么用RPC框架,http不更简单吗?
- go-zero:开箱即用的微服务框架(gin框架微服务)
- SOFARPC :高性能、高扩展性、生产级的 Java RPC 框架
- 自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记
- Rust语言从入门到精通系列 - Tonic RPC框架入门实战
- 腾讯开源框架TarsCpp-rpc设计分析-client(一)
- 设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架
- rpc框架使用教程,超级稳定好用,大厂都在使用
- Layui 框架实战:动态加载 Select 与二级联动全解析
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- ui自动化框架 (47)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)