X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fscripts%2Fldev;h=77c0040bdfa551a6a6c104fefaf93406a0b3bc58;hb=a70b020e5b2f1bbe3b759232852beaac4f0852b5;hp=8005bcf530364d07bee592ed7ddf04b7062f23d6;hpb=c86a1a5bd20cd97ed578fb450b3773772ad72d9c;p=fs%2Flustre-release.git diff --git a/lustre/scripts/ldev b/lustre/scripts/ldev index 8005bcf..77c0040 100755 --- a/lustre/scripts/ldev +++ b/lustre/scripts/ldev @@ -29,6 +29,7 @@ Parse ldev.conf and answer the following queries: -r, --raidtab LABEL Print raidtab of LABEL if it exists. -t, --type LABEL Print device type of LABEL, i.e. "zfs" or "md". -z, --zpool LABEL Print zpool containing LABEL. + -R, --role ROLE Filter output based on role, i.e. mdt, ost, mgs. CMD [ARGS] ... Run CMD in parallel for each device substituting: %f=fsname %d=device %i=dec-index %n=main-nid %l=label %t=srvtype %j=journal %I=hex-index %N=fail-nid %m=mgs-nid @@ -88,6 +89,7 @@ sub parse_cmdline $conf{sanity} = 0; $conf{execcmd} = ""; $conf{journal} = ""; + $conf{role} = ""; $conf{fsname} = ""; my $rc = GetOptions ( @@ -105,6 +107,7 @@ sub parse_cmdline "raidtab|r=s" => \$conf{raidtab}, "type|t=s" => \$conf{type}, "zpool|z=s" => \$conf{zpool}, + "role|R=s" => \$conf{role}, "filesys|F=s" => \$conf{fsname}, ); @@ -163,7 +166,7 @@ sub parse_config eparse_line ($line, "elabel_uniq") if (exists $label2dev{$label} || exists $label2local{$label}); - /(\w+)-(OST|MDT|MGT|MGS)([0-9a-fA-F]{4})/, $label; + /(\w+)-(OST|MDT|MGS)([0-9a-fA-F]{4})/, $label; my $filesys = $1; my $nodetype = $2; $label2dev{$label} = $dev; @@ -177,10 +180,13 @@ sub parse_config } } $label2hostname{$label}=$local; - if ($nodetype eq "MGS" or $nodetype eq "MGT") { + + if ($nodetype eq "MGS") { $filesys2mgs{$filesys} = $label; } + next if $conf{role} and lc $conf{role} ne lc $nodetype; + if ($local eq $conf{hostname}) { push @local_labels, $label; } elsif ($foreign eq $conf{hostname}) { @@ -455,7 +461,7 @@ sub exec_cmd } foreach (@labels) { - /(\w+)-(OST|MDT|MGT|MGS)([0-9a-fA-F]{4})/; + /(\w+)-(OST|MDT|MGS)([0-9a-fA-F]{4})/; my $fsname = $1; my $type = $2; $type =~ tr/A-Z/a-z/;