2010-03-02 6 views
-1

Quelqu'un peut-il s'il vous plaît laissez-moi savoir comment nous pouvons déterminer si un disque local ou SAN.Déterminer un lecteur est SAN

Merci

+2

Pourquoi est-ce marqué comme serveur sql? Cela ressemble plus à une chose de ServerFault.com –

Répondre

0

SAN est une topologie de réseau de stockage incorporée dans une topologie de réseau physique, il ce qui signifie que le stockage est prévu pour le partage/stockage de données via le réseau (généralement tcp/ip) ... Il est similaire à NFS (partage de fichiers réseau) ou à l'aide du protocole Server Message Block spécifique à Microsoft pour désigner un partage sur le serveur avec une lettre de lecteur utilisée - Universal Naming Convention où un lecteur partagé est mappé à une lettre de lecteur sous la forme \\ nomserveur \ foo '.

Pouvez-vous préciser si c'est ce que vous cherchez? Comment déterminer si un lecteur est mappé sur le lecteur partagé tel que \\ nom_serveur \ foo '?

Jetez un coup d'œil à ce fil ici ... sur les lecteurs de mappage et de déconnexion des lecteurs mappés here. Et ici pour vérifier si un chemin est sur un réseau here.

Edit: Merci àzombiesheep pour la clarification en raison de ma confusion après avoir été dit par quelqu'un d'autre au cours de ma formation pour CompTIA Network + 2009 ..... duh!

Espérons que cela aide, Cordialement, Tom.

+1

Désolé, mais un SAN n'est normalement pas connecté via le réseau. Il est généralement connecté via Fibre Channel directement dans un adaptateur de bus hôte du serveur. Le serveur est alors responsable de l'utilisation de l'espace alloué comme il le souhaite, que ce soit pour le stockage interne, le service sur le réseau ou tout autre chose. On dirait que vous le confondez avec NAS (stockage en réseau) Désolé, ex-ingénieur HP StorageWorks ici. :) – ZombieSheep

+0

@ZombieSheep: Oh ... ok ... drôle que .... Je vous prends au mot ... J'étudiais CompTIA NEtwork + 2009 plus tôt cette année et c'était grâce à CBT ... .si tu crois que ... SAN une topologie ... soupir ... Merci pour les heads up je vais corriger ça en quelque sorte ... :) – t0mm13b

2

Il n'existe pas de méthode "agnostique du système d'exploitation" pour déterminer si le système de fichiers est rétro-géré par SAN. C'est-à-dire, s'il vous plaît laissez-nous savoir quel système d'exploitation vous utilisez afin que nous puissions aider à déterminer la façon spécifique de l'OS pour déterminer si cela (autre que de demander à votre administrateur de stockage).

+0

J'ai le même problème, et je veux le faire sur * nix des boites. Pouvez-vous s'il vous plaît me conseiller? Merci. – kolslorr

0

C'est parti, en utilisant C# et WMI. En utilisant cela, vous pouvez taper "enumSANDrives" à partir d'une invite de commande et il va les lister. Vous devrez peut-être modifier légèrement les descriptions et regarder manuellement la classe WMI via Scriptomatic ou quelque chose pour faire correspondre votre SAN (s) particulier.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Collections; 
using System.ComponentModel; 
using System.Data; 
using System.Diagnostics; 
using System.IO; 
using System.Management; 
using System.Data.SqlClient; 
using Microsoft.Win32; 
using System.Net; 
using System.Net.NetworkInformation; 
using System.Runtime.InteropServices; 
using System.Security.Permissions; 
using System.Security.Principal; 

namespace EnumSANDrives 
{ 
    class Program 
    { 


     static void Main(string[] args) 
     { 
      //1. Start with the Win32_DiskDrive class and query for instances of Win32_DiskPartition using the DeviceID property and the 
      //Win32_DiskDriveToDiskPartition association class. Now you have a collection of the partitions on the physical drive. 
      //2. Query for the Win32_LogicalDisk that represents the partition using the Win32_DiskPartition.DeviceID property and 
      //Win32_LogicalDiskToPartition association class. 
      //3. Get the drive letter from the Win32_LogicalDisk.DeviceID. 

      ConnectionOptions connOptions = new ConnectionOptions(); 
      connOptions.Username = "<username>"; 
      connOptions.Password = "<pwd>"; 
      connOptions.Authentication = AuthenticationLevel.Packet; 
      connOptions.Impersonation = ImpersonationLevel.Impersonate; 
      connOptions.EnablePrivileges = true; 
      ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", machine), connOptions); 
      manScope.Connect(); 
      ObjectQuery oQueryDiskDrive = new ObjectQuery("select * from Win32_DiskDrive"); 
      ManagementObjectSearcher oSearcherDiskDrive = new ManagementObjectSearcher(manScope, oQueryDiskDrive); 
      ManagementObjectCollection oReturnDiskDrive = oSearcherDiskDrive.Get(); 
      foreach (ManagementObject DiskDrive in oReturnDiskDrive) 
      { 
       ObjectQuery oQueryDiskPartition = new ObjectQuery("ASSOCIATORS OF {Win32_DiskDrive.DeviceID='" + DiskDrive["DeviceID"] + "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition"); 
       ManagementObjectSearcher oSearcherDiskPartition = new ManagementObjectSearcher(manScope, oQueryDiskPartition); 
       ManagementObjectCollection oReturnDiskPartition = oSearcherDiskPartition.Get(); 
       foreach (ManagementObject DiskPartition in oReturnDiskPartition) 
       { 
        ObjectQuery oQueryLogicalDisk = new ObjectQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" + DiskPartition["DeviceID"] + "'} WHERE AssocClass = Win32_LogicalDiskToPartition"); 
        ManagementObjectSearcher oSearcherLogicalDisk = new ManagementObjectSearcher(manScope, oQueryLogicalDisk); 
        ManagementObjectCollection oReturnLogicalDisk = oSearcherLogicalDisk.Get(); 
        foreach (ManagementObject LogicalDisk in oReturnLogicalDisk) 
        { 
         try 
         { 
          //Console.Write("Drive Name : " + LogicalDisk["DeviceID"].ToString()); 
          if (DiskDrive["PNPDeviceID"] != null) 
          { 
           if (DiskDrive["PNPDeviceID"].ToString().Contains("VEN_EMC")) 
           { 
            Console.WriteLine("Drive Name : " + LogicalDisk["DeviceID"].ToString() + " - " + "EMC SAN " + DiskDrive["Model"].ToString()); 
           } 
           if (DiskDrive["PNPDeviceID"].ToString().Contains("VEN_IBM")) 
           { 
            Console.WriteLine("Drive Name : " + LogicalDisk["DeviceID"].ToString() + " - " + "IBM SAN " + DiskDrive["Model"].ToString()); 
           } 
           if (DiskDrive["PNPDeviceID"].ToString().Contains("VEN_COMPAQ")) 
           { 
            Console.WriteLine("Drive Name : " + LogicalDisk["DeviceID"].ToString() + " - " + "HP SAN " + DiskDrive["Model"].ToString()); 
           } 



          } 
          //Console.WriteLine("Size : " + BytesToGB(DiskDrive["Size"].ToString())); 
          //Console.WriteLine("Used Space : " + BytesToGB((Convert.ToDouble(DiskDrive["Size"].ToString()) - Convert.ToDouble(LogicalDisk["FreeSpace"].ToString())).ToString())); 
          //Console.WriteLine("Free Space : " + BytesToGB(LogicalDisk["FreeSpace"].ToString())); 
         } 
         catch (Exception) 
         { 
          continue; 
         } 
        } 
       } 
      } 

     } 
    } 
} 
Questions connexes