Назад | Перейти на главную страницу

Linux не правильно подбирает новый раздел на псевдоустройстве emc

У нас есть сервер базы данных, на котором запущен oracle rac. Недавно нам не хватало места на основном LUN, к которому он подключен. Я создал новый LUN 100 ГБ и соединил его с существующим LUN, создав новый MetaLUN. После некоторого возни мне удалось заставить Linux распознавать новое пространство. Затем я создал новый раздел на псевдоустройстве, чтобы использовать новое пространство. Ранее, когда я делал это в другой системе, следующим шагом было создание диска ASM в новом разделе и добавление этого диска в группу дисков Oracle. Однако это не удается. Мне известно о различных проблемах с ASM и powerpath, но я не думаю, что здесь проблема. Во время исследования проблемы я обнаружил, что одно из базовых логических устройств не отражает изменение размера. Увидеть ниже;

Powermt отображает все базовые логические блоки

[root@XXXXX~]# powermt display dev=emcpowerd  
Pseudo name=emcpowerd  
CLARiiON ID=CKM00091500009 [VFRAC2]  
Logical device ID=6006016030312200787502866C65DE11 [LUN 30]  
state=alive; policy=CLAROpt; priority=0; queued-IOs=0  

Owner: default=SP A, current=SP A       Array failover mode: 1  
`==============================================================================`
---------------- Host ---------------   - Stor -   -- I/O Path -  -- Stats ---  
`###  HW Path                I/O Paths    Interf.   Mode    State  Q-IOs Errors`
`==============================================================================`
   3 qla2xxx                   sde       SP A0     active  alive      0      0  
   3 qla2xxx                   sdj       SP B0     active  alive      0      0  
   4 qla2xxx                   sdo       SP A1     active  alive      0      0  
   4 qla2xxx                   sdt       SP B1     active  alive      0      0  

**Fdisk on the pseudo device shows correct space.**

[root@XXXXX ~]# fdisk -l /dev/emcpowerd  

Disk /dev/emcpowerd: 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/emcpowerd1               1       39162   314568733+  83  Linux  
/dev/emcpowerd2           39163       52216   104856255   83  Linux  

**fdisk on one of the logical units is wrong**

[root@XXXXX~]# fdisk -l /dev/sde  

Disk /dev/sde: 322.1 GB, 322122547200 bytes    
255 heads, 63 sectors/track, 39162 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  

   Device Boot      Start         End      Blocks   Id  System  
/dev/sde1               1       39162   314568733+  83  Linux  
/dev/sde2           39163       52216   104856255   83  Linux  

**fdisk on the rest of the units is fine**

[root@XXXXX ~]# fdisk -l /dev/sdj  
Disk /dev/sdj: 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/sdj1               1       39162   314568733+  83  Linux  
/dev/sdj2           39163       52216   104856255   83  Linux  

Также, когда я создал раздел, linux не создавал никаких записей в каталоге / dev для второго раздела, поэтому я создал их вручную

[root@XXXXX dev]# mknod sde2 b 8 66
[root@XXXXX dev]# ls -al sd[ejot]?  
brw-r----- 1 root disk  8,  65 Dec 29 14:20 sde1  
brw-r--r-- 1 root disk  8,  66 Apr  8 20:31 sde2  
brw-r----- 1 root disk  8, 145 Dec 29 14:19 sdj1  
brw-r--r-- 1 root disk  8, 146 Apr  8 20:33 sdj2  
brw-r----- 1 root disk  8, 225 Apr  6 23:12 sdo1  
brw-r--r-- 1 root disk  8, 226 Apr  8 20:33 sdo2  
brw-r----- 1 root disk 65,  49 Dec 29 14:19 sdt1  
brw-r--r-- 1 root disk 65,  50 Apr  8 20:33 sdt2  

Это рабочий сервер, который нелегко перезагрузить.

Будем очень признательны за любые идеи.

J

Помимо partprobeпопробуйте с помощью утилиты blockdev перечитать таблицу разделов устройства:

blockdev --rereadpt /dev/sde

Тогда проблема может заключаться в том, что сам LUN не был должным образом обновлен.

Вы можете попробовать выполнить команду повторного сканирования для хоста Fibre Channel или SCSI через /sys файловая система.

Некоторое время назад я написал это scsi_rescan_bus.sh скрипт для работы с нашими устройствами EMC Clariion:

#!/bin/sh
host_number="$1"
echo "1" > /sys/class/fc_host/host${host_number}/issue_lip
sleep 10
echo "- - -" > /sys/class/scsi_host/host${host_number}/scan

Я не совсем уверен, что он по-прежнему будет работать с современными ядрами и устройствами. Всегда проверяйте это в специальной тестовой среде, прежде чем пробовать это в продакшене!

Есть множество ошибок, поэтому обязательно прочтите эти темы:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1454807

И официальная документация Red Hat («Руководство по изменению конфигурации сетевого хранилища»): http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Online_Storage_Reconfiguration_Guide/index.html

попробуйте бежать /sbin/partprobe /dev/emcpowerd

partprobe говорит вашему ядру повторно сканировать разделы

Я исследовал это с EMC, и мне кажется, что без перезагрузки не обойтись. Однако в качестве работы я создал новый lun, который динамически подбирался, и смог заставить oracle это распознать. J