Go to main content

Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.8.0

退出打印视图

更新时间: 2018 年 11 月
 
 

编写用于创建启动器和启动器组别名的脚本 (CLI)

有关如何修改和使用以下示例脚本的信息,请参阅 CLI 用法简单 CLI 脚本和批处理命令部分。

  • 要为启动器和启动器组编写别名脚本,请使用以下 CLI 命令:
    script
         /*
          * This script creates both aliases for initiators and initiator
          * groups, as specified by the below data structure.  In this
          * particular example, there are five initiator groups, each of
          * which is associated with a single host (thicktail, longjaw, etc.),
          * and each initiator group consists of two initiators, each of which
          * is associated with one of the two ports on the FC HBA.  (Note that
          * there is nothing in the code that uses this data structure that
          * assumes the number of initiators per group.)
          */
          groups = {
                   thicktail: {
                          'thicktail-1': 'wwn.2100001b3281ac39',
                          'thicktail-2': 'wwn.2101001b32a1ac39'
                   },
                   longjaw: {
                           'longjaw-1': 'wwn.2100001b3281a339',
                           'longjaw-2': 'wwn.2101001b32a1a339'
                   },
                   tecopa: {
                           'tecopa-1': 'wwn.2100001b3281e339',
                           'tecopa-2': 'wwn.2101001b32a1e339'
                   },
                   spinedace: {
                           'spinedace-1': 'wwn.2100001b3281df39',
                           'spinedace-2': 'wwn.2101001b32a1df39'
                   },
                   fera: {
                           'fera-1': 'wwn.2100001b32817939',
                           'fera-2': 'wwn.2101001b32a17939'
                   }
           };
           for (group in groups) {
                   initiators = [];
                   for (initiator in groups[group]) {
                           printf('Adding %s for %s ... ',
                               groups[group][initiator], initiator);
                               try {
                                   run('select alias=' + initiator);
                                   printf('(already exists)\n');
                                   run('cd ..');
                               } catch (err) {
                                   if (err.code != EAKSH_ENTITY_BADSELECT)
                                           throw err;
                                   run('create');
                                   set('alias', initiator);
                                   set('initiator', groups[group][initiator]);
                                   run('commit');
                                   printf('done\n');
                           }
                           run('select alias=' + initiator);
                           initiators.push(get('initiator'));
                           run('cd ..');
                   }
                   printf('Creating group for %s ... ', group);
                   run('groups');
                   try {
                           run('select name=' + group);
                           printf('(already exists)\n');
                           run('cd ..');
                   } catch (err) {
                           if (err.code != EAKSH_ENTITY_BADSELECT)
                                   throw err;
                           run('create');
                           set('name', group);
                           run('set initiators=' + initiators);
                           run('commit');
                           printf('done\n');
                   }
                   run('cd ..');
           }
    

相关主题