2009-11-03 3 views
1

Je veux créer une configuration de test qui devrait avoir 4tb de système de fichiers haute densité. J'ai essayé quelques outils (wst) mais ils se plantent après un certain temps. Après avoir lutté pendant deux jours, je suis incapable de remplir même pas 20% de l'espace disque. J'ai besoin de cet outil sur Windows. Aucune suggestion?Besoin d'un bon outil de création de fichiers

+0

Qu'est-ce qu'un "système de fichiers haute densité"? –

+0

millions de petits fichiers (disons 2k à 10k taille) – rplusg

+0

Est-ce que le contenu des fichiers est important? C'est à dire. peuvent-ils être pleins de zéro ou avez-vous besoin de données aléatoires en eux? – Benj

Répondre

-7

Je ne peux pas vraiment faire correspondre les deux termes "Windows" et "4 To de données" dans ma tête. Windows est un système d'exploitation de bureau écrit pour l'utilisateur moyen qui fait un peu de Word et navigue avec IE. Si vous avez des besoins particuliers, utilisez un système d'exploitation serveur tel que Linux. Il est livré avec tous les outils dont vous avez besoin pour gérer de grandes quantités de données. Vous obtenez également des outils de référence FS comme bonnie.

Vous pouvez également choisir parmi un grand ensemble de systèmes de fichiers dont certains (comme ZFS) sont conçus pour des tailles énormes (Exabytes). NTFS peut théoriquement gérer cette quantité de données mais je ne suis pas au courant que quelqu'un ait réellement essayé cela. Voir this Wikipedia article pour quelques pointeurs. [EDIT] Puisque vous utilisez une édition "serveur" de Windows (qui se traduit par "OS de bureau avec quelques bons assistants pour configurer le réseau"), vous devez avoir un contrat de support professionnel avec Microsoft. Cela signifie que vous pouvez simplement les appeler, expliquer votre problème et les laisser vous dire comment le résoudre. Désolé, je suis inutilement sarcastique ici, mais je trouve tout cela très amusant;) Juste parce que le département marketing slaps un label "Server" sur quelque chose ne signifie pas qu'un administrateur professionnel l'achèterait. Je serais surpris si quelqu'un publiait une réponse à l'effet "nous avons fait la même chose et nous pourrions le faire fonctionner de manière fiable et à notre satisfaction".

+0

je parlais de Windows 2003 Server, Tout ce dont j'ai besoin est un petit outil pour créer des fichiers. S'il vous plaît arrêtez de parler de la performance des fenêtres ou quel OS est mieux ou IE etc ... J'ai mes raisons de dire Win2k3 serveur est le meilleur serveur ... – rplusg

+2

Si vous ne pouvez pas obtenir les bons outils, alors ce n'est pas le droit OS pour vous. –

+0

Détestant la solution aidera autant que frapper votre tête contre le mur;) –

0

Vous pouvez:

  1. créer un petit fichier dans un répertoire,
  2. copier-coller le répertoire lui-même,
  3. mettre le répertoire en double dans l'original,

et répétez les étapes 2 et 3 jusqu'à ce que vous atteigniez votre besoin (environ trente fois, selon la taille du fichier initial).

+1

Windows ne peut plus copier un répertoire s'il contient des millions de fichiers (du moins pas avec Copier/Coller). Si vous ne manquez pas de mémoire, vous manquerez de patience en premier (puisque Windows chargera tous les noms de fichiers dans la RAM avant de commencer le collage). –

+0

Essayez 'xcopy' à la place. –

+0

Ou robocopy dans la ligne de commande. – spa

1

Vous pouvez utiliser Disk Tools. Je l'ai utilisé une fois pour tester le stress sur un disque dur qui avait probablement des secteurs défectueux.

0

Si tout ce que vous voulez est simplement de créer beaucoup de nombreux fichiers, vous pouvez utiliser ce script batch qui copie un fichier donné pour autant de fois que possible. Il n'y a pas de condition d'arrêt, mais je suppose que la variable du compteur débordera après environ 2^31.

Utilisez le script extreme_copy my_test_file.txt où le fichier de test peut avoir la taille que vous voulez.

Voici le script:

@ECHO OFF 

IF "%1"=="" GOTO END 
IF NOT EXIST "%1" GOTO END 

REM copy loop 
SET FILE_NUMBER=1 

:COPY 

copy "%1" "%~dpn1_%FILE_NUMBER%%~x1" > nul 

REM show some progress 
SET /A SHOW_ITERATIONS="%FILE_NUMBER% %% 1000" 
IF /I %SHOW_ITERATIONS%==0 ECHO %FILE_NUMBER% files created... 

SET /A FILE_NUMBER=%FILE_NUMBER% + 1 

GOTO COPY 

:END 
0

J'ai fait une application console C# ne créer des fichiers aléatoires, avec un contenu aléatoire de 2 Ko à 10 Ko. Compiler (ce qui est .net 2, mais je suis sûr que ce sera la compilation avec une version .NET) Exécuter comme ceci:
YourExe d:
YourExe d: \ temp2

disclaimer Semi, si vous exécutez la app assez longtemps, il pourrait obtenir un stackoverflow, il suffit de recommencer si cela se produit.Les noms de fichier sont aléatoires, donc il ne créera pas de problèmes

class Program 
    { 
     static void Main(string[] args) 
     { 
      if (args.Length != 1 || !Directory.Exists(args[0])) 
      { 
       Console.WriteLine("Arg should be: C:\\ (or your drive letter)"); 
       return; 
      } 

      const int RandomFilesToCreate = int.MaxValue; 
      for (int i = 0; i < RandomFilesToCreate; i++) 
      { 
       string FileName = CreateRandomFile(args[0]); 
       Console.WriteLine(i + ") Wrote file " + FileName); 
      } 
     } 

     static Random gRan = new Random(); 
     static string CreateRandomFile(string Path) 
     { 
      byte[] FileContent = new byte[gRan.Next(2,10) * 1024] ; 

      // generate a random filename 
      string FileName = Path + "\\TempF_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + ".tmp"; 
      while(File.Exists(FileName)) 
       FileName = Path + "\\TempF_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + ".tmp"; 

      // fill with random bytes. 
      gRan.NextBytes(FileContent); 

      // Write to disk 
      File.WriteAllBytes(FileName, FileContent); 
      return FileName; 
     } 
    } 
Questions connexes