Как я могу смонтировать vxfs FS к двум или больше серверам Соляриса?

Я думаю, читая count в процессе замена препятствует тому, чтобы Вы получили ее статус возврата. Не делайте этого. Вместо этого сохраните результат в переменной или используйте канал.

count=$(count)
if [ $? -eq 0 ]; then
  read -r R Q <<<"$count"
  …

или

set -o pipefail
if count | { read -r R Q; … }

Другая возможность состоит в том, чтобы использовать PIPESTATUS переменная для проверки статуса возврата первой команды.

count=$(qstat -tn1 | awk …)
if ((${PIPESTATUS[0]} == 0)); then
  read P Q
  …

С другой стороны, примите меры, чтобы awk распечатал что-то отличительное (например, ничто), когда его вход будет пуст.

awk '
    BEGIN { R = 0; Q = 0; }
    $10 == "R" { R++ }
    $10 == "Q" { Q++ }
    END { if (NR) print R, Q }'

Можно протестировать, если вход команды пуст с ifne от moreutils или других методов. Но так как Вы передаете по каналу в awk, Вы могли бы также сделать это прямо в awk сценария, который Вы уже имеете.

Если необходимо получить статус возврата от qstat команда, можно подать его к awk как дополнительная входная строка. Для более легкого парсинга примите меры, чтобы последняя строка имела уникальный формат.

{
  qstat -tn1
  echo exit_code = $?
} | awk '
    …
    /^exit_code = / { status = $3 }
    END { if (status == 0) print Q, R }
'

2
28.06.2013, 17:35
2 ответа

Вы, кажется, сбиваете с толку, что Solaris Cluster делает по сравнению с Oracle RAС.

В Solaris Cluster (SunCluster) любое выполнение приложения на самом деле работает на единственном узле в кластере скорее затем на нескольких. Что означает, что Менеджер томов Veritas импортирует связанную Volume Group только на одном из узлов в кластере.

Таким образом, нет никакой проблемы с ним. Если Вы будете надеяться выполнять группу параллельно на нескольких узлах в кластере, то необходимо будет удостовериться, что выполняете VxCFS, который предоставляет менеджеру по Кластерному тому Veritas, которые требуются, чтобы обрабатывать блокировку и синхронизацию.

1
27.01.2020, 22:23

Oracle Solaris Cluster, раньше Кластер Sun, может смонтировать UFS или файловые системы VxFS параллельно на любом количестве узлов в кластере. Veritas также имеет Кластерного менеджера, который может выполнить схожую функциональность, через VxCFS, как упомянуто Karlson.

Во-первых, добавьте свой VxFS к каждому /etc/vfstab на каждом узле в кластере:

/dev/vx/dsk/dg1/v1 /dev/vx/rdsk/dg1/v1 /global/v1 vxfs 5 yes log,global

Я собираюсь предположить, что у Вас уже есть группа ресурсов для этого, названного gfs, и Вы уже зарегистрировались HAStoragePlus тип ресурса, через clrt register HAStoragePlus.

Теперь Вы просто создаете ресурс в течение своей глобальной фс:

clrs create -g gfs -t HAStoragePlus -p FileSystemMountPoints="/global/v1" v1-rs

И, включите группу ресурсов:

clrg online -M gfs

Существует много других шагов, необходимых для подъема кластера и выполнения, таким образом, я принимаю определенную базовую линию знания Solaris Cluster.

0
27.01.2020, 22:23

Теги

Похожие вопросы