কেন ডিএফ একটি RAID10 অ্যারের অর্ধেক আকার দেখায়?


9

আমি 150G স্টোরেজ তৈরি করতে 4 75G ড্রাইভ ব্যবহার করে একটি RAID10 অ্যারে তৈরি করেছি।
সবকিছু শেষ হওয়ার পরে (প্রাথমিক সিঙ্কিং সহ) সমস্ত কিছু df -hঠিকঠাক মাউন্ট পয়েন্টে মাত্র 73G স্টোরেজ দেখিয়েছে আউটপুট ব্যতীত সবকিছু দেখতে ভাল লাগছিল ।

বিবরণ:

  • মেশিনটি অ্যামাজন ইসি 2-তে একটি এম 1 লার্জ উবুন্টু 11.10 উদাহরণ instance
  • 4 টি ড্রাইভ হ'ল ইবিএস ড্রাইভ, প্রতিটি আকারের 75 জি।
  • RAID10 অ্যারে নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করে তৈরি করা হয়েছিল:

-

#!/bin/sh

disk1="/dev/sdh1"
disk2="/dev/sdh2"
disk3="/dev/sdh3"
disk4="/dev/sdh4"

echo "*** Verifying existence of 4 volumes $disk1, $disk2, $disk3 and $disk4"
if [ -b "$disk1" -a -b "$disk2" -a -b "$disk3" -a -b "$disk4" ]; then
    echo "# Found expected block devices."
else
    echo "!!! Did not find expected block devices.  Error."
    exit -1
fi
until read -p "??? - How big (in GB) are the disks (They should be the same size)?  " disk_size && [ $disk_size ]; do
    echo "Please enter a disk size."
done 

lv_size=$(echo "scale=2; $disk_size * 2.0" | bc)
echo "*** Assuming a per disk size of $disk_size gigs, will create a logical volume of $lv_size gigs, with $lv_size reserved for snapshots"

echo "*** Partitioning disks..."

echo "~ Partitioning $disk1"
echo ',,L' | sfdisk $disk1
echo "~ Partitioning $disk2"
echo ',,L' | sfdisk $disk2
echo "~ Partitioning $disk3"
echo ',,L' | sfdisk $disk3
echo "~ Partitioning $disk4"
echo ',,L' | sfdisk $disk4

sleep 6
echo "*** Creating /dev/md0 as a RAID 10"

/sbin/mdadm /dev/md0 --create --level=10 --raid-devices=4 $disk1 $disk2 $disk3 $disk4 

echo " ~ Allocating /dev/md0 as a physical volume."

/sbin/pvcreate /dev/md0

echo " ~ Allocating a Volume Group 'mongodb_vg'"

/sbin/vgcreate -s 64M mongodb_vg /dev/md0

echo " ~ Creating a Logical Volume 'mongodb_lv'"

num_extents=$(echo "$disk_size * 1000 / 64" | bc)

/sbin/lvcreate -l $num_extents -nmongodb_lv mongodb_vg

echo " ~ Formatting the new volume (/dev/mongodb_vg/mongodb_lv) with EXT4"

/sbin/mkfs.ext4 /dev/mongodb_vg/mongodb_lv

echo " ~ Done! Go ahead and mount the new filesystem.  Suggested FStab: "
echo " /dev/mongodb_vg/mongodb_lv /data ext4 defaults,noatime 0 0"

এটি আমি পেয়েছি আউটপুট:

*** Verifying existence of 4 volumes /dev/xvdh1, /dev/xvdh2, /dev/xvdh3 and /dev/xvdh4
# Found expected block devices.
??? - How big (in GB) are the disks (They should be the same size)?  75
*** Assuming a per disk size of 75 gigs, will create a logical volume of 150.0 gigs, with 150.0 reserved for snapshots
*** Partitioning disks...
~ Partitioning /dev/xvdh1
Checking that no-one is using this disk right now ...
BLKRRPART: Invalid argument
OK

Disk /dev/xvdh1: 9790 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/xvdh1: unrecognized partition table type
Old situation:   
No partitions found
New situation:   
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/xvdh1p1          0+   9789    9790-  78638174+  83  Linux
/dev/xvdh1p2          0       -       0          0    0  Empty
/dev/xvdh1p3          0       -       0          0    0  Empty
/dev/xvdh1p4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: Invalid argument

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)  
~ Partitioning /dev/xvdh2
Checking that no-one is using this disk right now ...
BLKRRPART: Invalid argument
OK

Disk /dev/xvdh2: 9790 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/xvdh2: unrecognized partition table type
   Old situation:   
No partitions found
New situation:   
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/xvdh2p1          0+   9789    9790-  78638174+  83  Linux
/dev/xvdh2p2          0       -       0          0    0  Empty
/dev/xvdh2p3          0       -       0          0    0  Empty
/dev/xvdh2p4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: Invalid argument

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)  
~ Partitioning /dev/xvdh3
Checking that no-one is using this disk right now ...
BLKRRPART: Invalid argument
OK

Disk /dev/xvdh3: 9790 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/xvdh3: unrecognized partition table type
Old situation:   
No partitions found
New situation:   
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/xvdh3p1          0+   9789    9790-  78638174+  83  Linux
/dev/xvdh3p2          0       -       0          0    0  Empty
/dev/xvdh3p3          0       -       0          0    0  Empty
/dev/xvdh3p4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: Invalid argument
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)  
~ Partitioning /dev/xvdh4
Checking that no-one is using this disk right now ...
BLKRRPART: Invalid argument
OK

Disk /dev/xvdh4: 9790 cylinders, 255 heads, 63 sectors/track

sfdisk: ERROR: sector 0 does not have an msdos signature
 /dev/xvdh4: unrecognized partition table type
Old situation:   
No partitions found
New situation:   
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/xvdh4p1          0+   9789    9790-  78638174+  83  Linux
/dev/xvdh4p2          0       -       0          0    0  Empty
/dev/xvdh4p3          0       -       0          0    0  Empty
/dev/xvdh4p4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table

Re-reading the partition table ...
BLKRRPART: Invalid argument

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)  
*** Creating /dev/md0 as a RAID 10
mdadm: partition table exists on /dev/xvdh1 but will be lost or
       meaningless after creating array
mdadm: partition table exists on /dev/xvdh2 but will be lost or
       meaningless after creating array
mdadm: partition table exists on /dev/xvdh3 but will be lost or
       meaningless after creating array
mdadm: partition table exists on /dev/xvdh4 but will be lost or
       meaningless after creating array
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
 ~ Allocating /dev/md0 as a physical volume.

  Physical volume "/dev/md0" successfully created
 ~ Allocating a Volume Group 'mongodb_vg'
  Volume group "mongodb_vg" successfully created
 ~ Creating a Logical Volume 'mongodb_lv'
  Logical volume "mongodb_lv" created
 ~ Formatting the new volume (/dev/mongodb_vg/mongodb_lv) with EXT4
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux   
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
4800512 inodes, 19185664 blocks
959283 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
586 block groups 
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
 ~ Done! Go ahead and mount the new filesystem.  Suggested FStab:
 /dev/mongodb_vg/mongodb_lv /data ext4 defaults,noatime 0 0

এটি এর প্রাসঙ্গিক আউটপুট df -h:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/mongodb_vg-mongodb_lv
                       73G  180M   69G   1% /ebsRaid

এটি আউটপুট mdadm --detail /dev/md0

/dev/md0:
        Version : 1.2
  Creation Time : Wed Feb 29 10:14:39 2012
     Raid Level : raid10
     Array Size : 157283328 (150.00 GiB 161.06 GB)
  Used Dev Size : 78641664 (75.00 GiB 80.53 GB)
   Raid Devices : 4
  Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Wed Feb 29 13:21:49 2012
          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

         Layout : near=2
     Chunk Size : 512K

           Name : my.site.com:0  (local to host my.site.com)
           UUID : CENSORED
         Events : 19

    Number   Major   Minor   RaidDevice State
       0     202      113        0      active sync   /dev/xvdh1
       1     202      114        1      active sync   /dev/xvdh2
       2     202      115        2      active sync   /dev/xvdh3
       3     202      116        3      active sync   /dev/xvdh4

এটি এর ফলাফল cat /proc/mdstat:

Personalities : [raid10] 
md0 : active raid10 xvdh4[3] xvdh3[2] xvdh2[1] xvdh1[0]
      157283328 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]

unused devices: <none>

EDIT1:

এটি lvdisplay -m এর আউটপুট:

  --- Logical volume ---
  LV Name                /dev/mongodb_vg/mongodb_lv
  VG Name                mongodb_vg
  LV UUID                SEpGth-cXd3-ZFhy-XLHo-T5pV-gEd1-Tgancs
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                73.19 GiB
  Current LE             1171
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     4096
  Block device           252:0

  --- Segments ---
  Logical extent 0 to 1170:
    Type                linear
    Physical volume     /dev/md0
    Physical extents    0 to 1170

সম্পাদনা 2:

এটি এর ফলাফল vgdisplay:

  --- Volume group ---
  VG Name               mongodb_vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               149.94 GiB
  PE Size               64.00 MiB
  Total PE              2399
  Alloc PE / Size       1171 / 73.19 GiB
  Free  PE / Size       1228 / 76.75 GiB
  VG UUID               CENSORED

আপনার কাজটি অত্যন্ত বিশদ RAID 1 + 0 পারফরম্যান্স বিবেচনার ভিত্তিতে তৈরি না করা হলে আরও একটি KISS অনুবর্তী পন্থা হ'ল দুটি স্বতন্ত্র মিরর তৈরি করা এবং LVM স্তরটিতে যুক্ত হওয়া।
unixtippse

আপনি একটি lvdisply -mএবং পোস্ট করতে পারেন দয়া করে।
ওয়েবটো

উপায় দ্বারা আমি বিশ্বাস করি স্ক্রিপ্টটি সঠিকভাবে এক্সটেন্টগুলির সংখ্যা নির্ধারণ করছে না। আইএমএইচও, এটি 1024 করে 1024 দিয়ে _ ডিস্ক_সাইজকে করা উচিত
লুইস ফার্নান্দো অ্যালেন

@ ওয়েবেটো - আমি এটি প্রশ্নের সাথে যুক্ত করেছি।
ডোরন

3
আমি আপনার প্রশ্নের উত্তর দিতে পারছি না, তবে প্রাসঙ্গিক বিবরণ এবং ফলাফলগুলি সহ পোস্ট করা জাতীয় কিছু দেখতে সতেজ হয়। আমাদের সাথে থাকুন, ঠিক আছে স্যার।
MDMarra

উত্তর:


6

আপনার ভলিউম গোষ্ঠী এটির জন্য তৈরি এক্সটেন্টগুলির সম্পূর্ণতা ব্যবহার করছে না:

VG Size               149.94 GiB
PE Size               64.00 MiB
Total PE              2399
Alloc PE / Size       1171 / 73.19 GiB
Free  PE / Size       1228 / 76.75 GiB

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে আরও এক্সটেন্ট যুক্ত করতে পারেন:

lvextend -l +100%FREE /dev/mongodb_vg/mongodb_lv /dev/md0

এই টাইপ করার আগে দয়া করে মান পৃষ্ঠাটি পড়ুন

এই কমান্ডটি বাকী সমস্ত বিনামূল্যে এক্সটেন্টগুলি ব্যবহার করতে ভলিউম গ্রুপকে প্রসারিত করবে (আপনি কিছু এক্সটেন্টকে মুক্ত রাখতে চাইলে আপনিও কম নির্বাচন করতে পারেন)। এটি করার জন্য এটি এমডি 0-তে এক্সটেন্টগুলি ব্যবহার করবে।

তারপরে আপনি অনলাইনে পার্টিশনটি পুনরায় আকার দিতে পারেন:

resize2fs  /dev/mongodb_vg/mongodb_lv

এবং এটি অনলাইনে পুনরায় আকার দিচ্ছে বলা উচিত। আমি বিশ্বাস করি এটি আপনার সমস্যার সমাধান করবে তবে দয়া করে ম্যান পৃষ্ঠাগুলি পড়ুন এবং বোঝার আগে তারা কী করছে understand আপনার ডিস্কগুলি ট্র্যাশ করার জন্য আমি দায়বদ্ধ নই।

অন্যদিকে, একটি EBS এ RAID এবং তারপরে lvm ডিস্কগুলি ভার্চুয়ালাইজ করার একটি অপ্রয়োজনীয় স্তরের মতো মনে হয় seems আপনি অতিরিক্ত রেড যুক্ত করে পারফরম্যান্স বা ডেটা সুরক্ষাকে বাড়িয়ে তুলবেন না I আমি সঠিকভাবে মনে থাকলে LVM ইতিমধ্যে মিররিং / স্ট্রিপিং করে। যদিও আপনি প্রযুক্তিগতভাবে RAID বিজ্ঞাপনের উপর LVM এ RAID- এ চালনা চালিয়ে যেতে পারেন আমি নিশ্চিত না যে আপনি এটির মাধ্যমে বেশি কিছু অর্জন করছেন (যদিও আমি এ সম্পর্কে ভুল বলে চিহ্নিত করাতে বেশি খুশি)।


ধন্যবাদ। উপরে যে স্ক্রিপ্টটি আমি দেখিয়েছি, এটি 10 ​​মেন কর্মচারীর পোস্ট (মঙ্গোডবের পিছনে সংস্থা) থেকে নেওয়া হয়েছে - গ্রুপ জিএস / গ্রুপ / মংগডব- ইউজার / msg / 4d74b8283e4da79d - এএবেজে মোংডব সম্পর্কিত। আমি বলছি না মঙ্গডব বা 10 জেন লিনাক্স / সিস্টেম / ইবিস বিশেষজ্ঞ, তবে এটি একটি দৃ and় এবং সুস্পষ্ট ব্যাখ্যা মতো বলে মনে হয়েছিল। যেহেতু আমি এখনও এই মেশিনে অন্য কিছু করি নি, তাই আমি অন্যান্য / আরও ভাল সমাধানের জন্য উন্মুক্ত (এবং অত্যন্ত গ্রহণযোগ্য এবং ধন্যবাদ জানাব)। এই প্রথম প্রথম আমি কোনও রেইড সেটআপ দিয়ে আসলে কিছু করেছি তাই আমি LVM সেটআপগুলি বেশ বুঝতে পারি না।
ডোরন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.