Changing Controller Numbers in Solaris
If you need to change the controller numbers (c#) that a disk has assigned to it, whether it is for cluster, Solstice DiskSuite[TM]/Solaris[TM] Volume Manager, or just for ease of management. With Solaris[TM] 8 and above, there is a new directory, /dev/cfg, that allows us to move them easily.
Steps to Follow
You will have to quiesce the data to all of the devices that you are going to move. This cannot be done while the system is trying to access these paths. This works for SAN, and internal disks.
Looking at the output of format and cfgadm we can see that our disks are on c3 and c4.
root@ralph / # echo|format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,0/pci@1,1/ide@3/dad@0,0
1. c3t50020F230000C21Ed0
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,0
2. c3t50020F230000C21Ed1
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,1
3. c3t50020F230000C21Ed2
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,2
4. c3t50020F230000C21Ed3
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,3
5. c4t50020F230000C21Ed0
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,0
6. c4t50020F230000C21Ed1
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,1
7. c4t50020F230000C21Ed2
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,2
8. c4t50020F230000C21Ed3
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,3
Specify disk (enter its number): root@ralph / # cfgadm -o show_FCP_dev -al
Ap_Id Type Receptacle Occupant Condition
c3 fc-fabric connected configured unknown
c3::50020f230000c21e,0 disk connected configured unknown
c3::50020f230000c21e,1 disk connected configured unknown
c3::50020f230000c21e,2 disk connected configured unknown
c3::50020f230000c21e,3 disk connected configured unknown
c4 fc-fabric connected configured unknown
c4::50020f230000c21e,0 disk connected configured unknown
c4::50020f230000c21e,1 disk connected configured unknown
c4::50020f230000c21e,2 disk connected configured unknown
c4::50020f230000c21e,3 disk connected configured unknown
Looking at /dev/cfg, you can see that there are links to the device paths with a controller number designation.
root@ralph / # cd /dev/cfg
root@ralph /dev/cfg # ls
./ ../ c0@ c3@ c4@
root@ralph /dev/cfg # ls -l
total 16
drwxr-xr-x 2 root root 512 Apr 20 12:50 ./
drwxr-xr-x 17 root sys 3584 May 5 17:47 ../
lrwxrwxrwx 1 root root 41 Apr 6 14:18 c0 -> ../../devices/pci@1f,0/pci@1,1/ide@3:scsi
lrwxrwxrwx 1 root root 49 Apr 13 15:21 c3 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0:fc
lrwxrwxrwx 1 root root 51 Apr 13 15:21 c4 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0:fc
root@ralph / # cd /dev/cfg
root@ralph /dev/cfg # ls
./ ../ c0@ c3@ c4@
root@ralph /dev/cfg # ls -l
total 16
drwxr-xr-x 2 root root 512 Apr 20 12:50 ./
drwxr-xr-x 17 root sys 3584 May 5 17:47 ../
lrwxrwxrwx 1 root root 41 Apr 6 14:18 c0 -> ../../devices/pci@1f,0/pci@1,1/ide@3:scsi
lrwxrwxrwx 1 root root 49 Apr 13 15:21 c3 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0:fc
lrwxrwxrwx 1 root root 51 Apr 13 15:21 c4 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0:fc
All you have to do at this point, is remove any extra links, for clean up. And then move the controller, in this case c4, to the new controller number.
root@ralph /dev/cfg # mv c4 c2
root@ralph /dev/cfg # mv c4 c2
Now the '../../devices/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0:fc' link has been moved from c4 to c2. When we recreate the link Solaris will look at this and create all of the links on c2. In a sense 'forcing' it to the controller that we want.
root@ralph /dev/cfg # ls
./ ../ c0@ c2@ c3@
root@ralph /dev/cfg # ls -l
total 16
drwxr-xr-x 2 root root 512 May 9 10:17 ./
drwxr-xr-x 17 root sys 3584 May 9 10:18 ../
lrwxrwxrwx 1 root root 41 Apr 6 14:18 c0 -> ../../devices/pci@1f,0/pci@1,1/ide@3:scsi
lrwxrwxrwx 1 root root 51 Apr 13 15:21 c2 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0:fc
lrwxrwxrwx 1 root root 49 Apr 13 15:21 c3 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0:fc
root@ralph /dev/cfg # ls
./ ../ c0@ c2@ c3@
root@ralph /dev/cfg # ls -l
total 16
drwxr-xr-x 2 root root 512 May 9 10:17 ./
drwxr-xr-x 17 root sys 3584 May 9 10:18 ../
lrwxrwxrwx 1 root root 41 Apr 6 14:18 c0 -> ../../devices/pci@1f,0/pci@1,1/ide@3:scsi
lrwxrwxrwx 1 root root 51 Apr 13 15:21 c2 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0:fc
lrwxrwxrwx 1 root root 49 Apr 13 15:21 c3 -> ../../devices/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0:fc
Next remove all of the old device links in /dev/rdsk and /dev/dsk
root@ralph /dev/cfg # cd /dev/rdsk
root@ralph /dev/rdsk # rm -r c4*
root@ralph /dev/rdsk # cd /dev/dsk
root@ralph /dev/dsk # rm -r c4*
root@ralph /dev/cfg # cd /dev/rdsk
root@ralph /dev/rdsk # rm -r c4*
root@ralph /dev/rdsk # cd /dev/dsk
root@ralph /dev/dsk # rm -r c4*
With direct attached disks and san disks that are already configured with cfgadm, just run devfsadm -C to clean up dangling /dev links.
root@ralph /dev/dsk # devfsadm -C
root@ralph /dev/dsk # devfsadm -C
Now format and cfgadm show the c4 devices on c2.
root@ralph /dev/dsk # echo|format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,0/pci@1,1/ide@3/dad@0,0
1. c2t50020F230000C21Ed0
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,0
2. c2t50020F230000C21Ed1
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,1
3. c2t50020F230000C21Ed2
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,2
4. c2t50020F230000C21Ed3
/pci@1f,0/pci@1/SUNW,qlc@3,1/fp@0,0/ssd@w50020f230000c21e,3
5. c3t50020F230000C21Ed0
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,0
6. c3t50020F230000C21Ed1
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,1
7. c3t50020F230000C21Ed2
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,2
8. c3t50020F230000C21Ed3
/pci@1f,0/pci@1/SUNW,qlc@3/fp@0,0/ssd@w50020f230000c21e,3
Specify disk (enter its number):
You can do this to any controller except the device that you are booted off of. Doing this procedure on your boot controller can cause the system to panic.
Changing Controller Numbers in Solaris的更多相关文章
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- REST API设计指导——译自Microsoft REST API Guidelines(四)
前言 前面我们说了,如果API的设计更规范更合理,在很大程度上能够提高联调的效率,降低沟通成本.那么什么是好的API设计?这里我们不得不提到REST API. 关于REST API的书籍很多,但是完整 ...
- SSL & TLS & STARTTLS
https://www.fastmail.com/help/technical/ssltlsstarttls.html SSL vs TLS vs STARTTLS There's often qui ...
- 4.9 Routing -- Query Parameters
一.概述 1. 在URL中查询参数是可选的key-value对,出现在?的右边.例如,下面的URL有两个查询参数,sort和page,对应的值分别是ASC和2. example:http://exam ...
- 雪崩利器 hystrix-go 源码分析
阅读源码的过程,就像是在像武侠小说里阅读武功秘籍一样,分析高手的一招一式,提炼出精髓,来增强自己的内力. 之前的帖子说了一下微服务的雪崩效应和常见的解决方案,太水,没有上代码怎么叫解决方案.githu ...
- iOS开发中的错误整理,Changing the delegate of a tab bar managed by a tab bar controller is not allowed
iOS [错误:'Changing the delegate of a tab bar managed by a tab bar controller is not allowed.'] 错误:'Ch ...
- Solaris/Linux 命令手册
无意翻到之前收藏的一个文档,共享一下. Solaris/Linux 命令手册 1. 系统 # passwd:修改口令 # exit:退出系统 2. 文件 # cp:复制文件或目录,参数:-a递归目录, ...
- Disk array controller and information processing apparatus
A disk array controller has a function of relocating a plurality of data blocks stored in a disk arr ...
- ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
随机推荐
- SpringCloud-路由网关(Zuul)
在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.只能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统. 在Spring Cloud ...
- Qt 安装事件过滤器installEventFilter
Qt 安装事件过滤器installEventFilter (2013-01-28 14:29:18) 转载▼ 分类: 工作笔记 Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他 ...
- 51nod 1009 数字1的数量 数位dp
1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1 ...
- Python之异常总结
一.异常错误 a.语法错误 错误一: if 错误二: def text: pass 错误三: print(sjds b.逻辑错误 #用户输入不完整(比如输入为空)或者输入非法(输入不是数字) num= ...
- JQuery调用iframe子页面函数/对象的方法例子
父页面有个ID为mainfrm.name为Iframe1的iframe,iframe连接b.html,该页面有个函数test 在父页面调用b.html的test方法为: $("#mainfr ...
- Redis简介 & 与Memcache的区别
redis 是一个基于内存的高性能key-value数据库. Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操 ...
- socket和多线程编程资料汇集-基础篇
0 基础 CS结构的分析,server端和client的选取. 1 查看端口是否链接 netstat -an|grep portid 2 root用户抓包 tcpdump port -w fn.cap ...
- node.js 操作excel
首先安装依赖库node-xlsx npm install node-xlsx 在操作文件中直接引用 var xlsx = require("node-xlsx"); 读取excel ...
- 如果看看机器ip和域名ip
1.如果查看一个机器IP ifconfig或hostname -i //linux ipconfig //windows 2.查看一个域名对应ip ping www.baidu.com 下面会显示域名 ...
- MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache
转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...