Linux下重启磁盘盘符会变,linux系统 重启盘符错乱问题

linux磁盘重启乱序问题处理linux

最近到客户那去巡检时,客户提到一个问题,他们的rac在重启的时候,原来的sda一、sdb一、sdc1会对应变成sdd一、sde一、sdf1,因为他们使用的是盘符来绑定裸设备,因此启动后,常常要手动执行如下命令

[root@ractest1 ~]# raw /dev/raw/raw1 /dev/sda1

[root@ractest1 ~]# raw /dev/raw/raw2 /dev/sdb1

[root@ractest1 ~]# raw /dev/raw/raw3 /dev/sdc1

而且,比较奇怪的事,两边有时认得的盘彻底不同,一边是sda\b\c,另外一边是sdd\e\f,这样,使oracle rac的共享盘出现问题。oracle

在了解了他们的状况后,我基本上明白是什么缘由,这种盘序错乱,与linux对磁盘的扫描机制有关,因此咱们只能从另外一角度去规避这样的问题,使用id号去绑定,这样就没有问题。在告诉他后,他赞成咱们对他原来的绑定方式进行修改,具体操做以下:ui

[root@ractest1 ~]# fdisk -lspa

Disk /dev/sdd: 429.4 GB, 429496729600 bytes

255 heads, 63 sectors/track, 52216 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes.net

Device Boot      Start         End      Blocks   Id  System

/dev/sdd1               1       52216   419424988+  83  Linuxblog

Disk /dev/sde: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytesip

Device Boot      Start         End      Blocks   Id  System

/dev/sde1               1        1008      204595   83  Linuxci

Disk /dev/sdf: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytesget

Device Boot      Start         End      Blocks   Id  System

/dev/sdf1               1        1008      204595   83  Linuxinput

能够看到,刚重启的节点1是sdd/sde/sdf

另外一个节点的状况是:

[root@ractest2 ~]# fdisk -l

Disk /dev/sda: 429.4 GB, 429496729600 bytes

255 heads, 63 sectors/track, 52216 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1       52216   419424988+  83  Linux

Disk /dev/sdb: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        1008      204595   83  Linux

Disk /dev/sdc: 209 MB, 209715200 bytes

7 heads, 58 sectors/track, 1008 cylinders

Units = cylinders of 406 * 512 = 207872 bytes

Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1        1008      204595   83  Linux

分别在两台机子上执行以下命令:

[root@ractest2 ~] /usr/lib/udev/scsi_id -g -s /block/sda

360080e500017ff06000004054c47bd4a

[root@ractest2 ~] /usr/lib/udev/scsi_id -g -s /block/sdb

360080e500017fdd8000004c74c6344ef

[root@ractest2 ~] /usr/lib/udev/scsi_id -g -s /block/sdc

360080e500017ff060000044f4c63446e

[root@ractest1 ~] /usr/lib/udev/scsi_id -g -s /block/sdd

360080e500017ff06000004054c47bd4a

[root@ractest1 ~] /usr/lib/udev/scsi_id  -g -s /block/sde

360080e500017fdd8000004c74c6344ef

[root@ractest1 ~] /usr/lib/udev/scsi_id -g -s /block/sdf

360080e500017ff060000044f4c63446e

能过对比,能够看到sda与sdd,sdb与sde,sdc与sdf是对应用的,因此咱们启用udev,经过绑定id来规避这个问题!

[root@ractest1 ~]# cd /etc/udev/rules.d/

[root@ractest1 rules.d]# ls -a

.                    50-udev.rules     60-pcmcia.rules         61-uinput-wacom.rules  90-hal.rules

..                   51-hotplug.rules  60-raw.rules            85-pcscd_ccid.rules    95-pam-console.rules

05-udev-early.rules  60-libsane.rules  60-wacom.rules          90-alsa.rules          98-kexec.rules

40-multipath.rules   60-net.rules      61-uinput-stddev.rules  90-dm.rules            bluetooth.rules

[root@ractest1 rules.d]# vi 60-raw.rules

# Enter raw device bindings here.

#

# An example would be:

#   ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"

# to bind /dev/raw/raw1 to /dev/sda, or

#   ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"

# to bind /dev/raw/raw2 to the device with major 8, minor 1.

ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="360080e500017ff060000044f4c63446e", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="360080e500017fdd8000004c74c6344ef", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="360080e500017ff06000004054c47bd4a", RUN+="/bin/raw /dev/raw/raw3 %N"

KERNEL=="raw[1-3]", OWNER="oracle", GROUP="dba", MODE="660"

[root@ractest1 rules.d]# start_udev

Starting udev: [  OK  ]

[root@ractest1 rules.d]#

[root@ractest1 rules.d]# raw -qa

/dev/raw/raw1:  bound to major 8, minor 81

/dev/raw/raw2:  bound to major 8, minor 65

/dev/raw/raw3:  bound to major 8, minor 49

同理,在另外一台机,也进行一样的操做。

通过如上操做后,全部问题都解决了,无论怎么重启都不会有问题!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Linux重启挂载磁盘,你可以按照以下步骤进行操作: 1. 首先,确保你已经在Linux系统上成功挂载了磁盘,但是请注意,挂载的设置在重启后会失效,如果你需要设置开机自动挂载磁盘,你需要进行后续步骤。 2. 为了更好地利用存储资源,你可以挂载额外的硬盘来避免空间浪费。如果你有一块200G的硬盘,其中系统盘占用20G,数据盘剩下的180G,如果不挂载硬盘,只能使用20G的系统盘,而另外的180G数据盘无法使用,导致空间浪费。所以挂载硬盘能更合理地使用存储资源。 3. 在重启挂载磁盘之前,你需要知道要挂载的磁盘的设备名,比如磁盘名为/dev/vdb。 4. 接下来,执行以下命令来为磁盘设备创建文件系统格式: `mkfs -t <文件系统格式> /dev/vdb` 其中,<文件系统格式>是你想要使用的文件系统格式,比如ext4或xfs等。 通过这些步骤,你可以在Linux上成功重启挂载磁盘。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【Linux挂载磁盘Linux系统挂载磁盘详细操作步骤](https://blog.csdn.net/qq_19320227/article/details/127868522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [linux如何挂载硬盘linux服务器上挂载磁盘(图文详解)](https://blog.csdn.net/m0_54883970/article/details/126433606)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值