다음 이전 차례

7. 이미 설치된 시스템 수정하기.

  1. Q: 선형 RAID가 확장가능한가? 디스크를 추가해서 존재하는 파일 시스템의 크기를 늘릴 수 있는가?

    Are linear MD's expandable? Can a new hard-drive/partition be added, and the size of the existing file system expanded?

    A: Miguel de Icaza < miguel@luthien.nuclecu.unam.mx> 는 아래와 같이 말했다.
    나는 파일 시스템 당 하나의 디스크대신 여러개의 디스크를 사용할 경우를 대비해서 ext2fs의 소스코드를 고쳤다. 그래서, 파일 시스템을 늘리고자 한다면, 유틸리티로 새디스크를 적당히 설정후 다만, 시스템에 알리기만 하면된다. 시스템이 작동중에 곧바로 추가가 가능하고, 재부팅할 필요는 없다. 아래의 홈페이지에서, 2.1.x버젼대의 커널패치를 받아라.
    http://www.nuclecu.unam.mx/~miguel/ext2-volume

    Miguel de Icaza < miguel@luthien.nuclecu.unam.mx> writes:

    I changed the ext2fs code to be aware of multiple-devices instead of the regular one device per file system assumption.

    So, when you want to extend a file system, you run a utility program that makes the appropriate changes on the new device (your extra partition) and then you just tell the system to extend the fs using the specified device.

    You can extend a file system with new devices at system operation time, no need to bring the system down (and whenever I get some extra time, you will be able to remove devices from the ext2 volume set, again without even having to go to single-user mode or any hack like that).

    You can get the patch for 2.1.x kernel from my web page:

    http://www.nuclecu.unam.mx/~miguel/ext2-volume

  2. Q: RAID-5 시스템에 디스크를 추가할 수 있는가?
    A: 현재, 모든 데이터를 지우지 않고는 불가능하다. 컨버젼하는 도구는 아직 없으며, RAID-5의 실제적 구조는, disk의 수에 의존하기 때문이다. 물론, 모든 데이터를 백업한후, 시스템을 다시 구축하면 가능하다.

    Currently, (September 1997) no, not without erasing all data. A conversion utility to allow this does not yet exist. The problem is that the actual structure and layout of a RAID-5 array depends on the number of disks in the array.

    Of course, one can add drives by backing up the array to tape, deleting all data, creating a new array, and restoring from tape.

  3. Q: RAID1/RAID0 으로 사용하고 있는 /dev/hdb/dev/hdc로 이동시키려 합니다. 만약, /etc/mdtab/etc/raid1.conf의 설정만 바꾼다고 한다면, 어떤 일이 일어날까요?

    What would happen to my RAID1/RAID0 sets if I shift one of the drives from being /dev/hdb to /dev/hdc?

    Because of cabling/case size/stupidity issues, I had to make my RAID sets on the same IDE controller (/dev/hda and /dev/hdb). Now that I've fixed some stuff, I want to move /dev/hdb to /dev/hdc.

    What would happen if I just change the /etc/mdtab and /etc/raid1.conf files to reflect the new location?

    A: linear 와 RAID-0에서는 정확히 같은 명령으로 드라이브를 지정해야 한다. 예를 들면 원래 설정이, 아래와 같다면,
    mdadd /dev/md0 /dev/hda /dev/hdb
                
    
    새로운 설정은 반드시 아래와 같아야 할 것이다.
    mdadd /dev/md0 /dev/hda /dev/hdc
                
    
    RAID-1/4/5에서는 superblock에 ''RAID number''가 저장되어 있기 때문에, 어떤 디스크를 지정하는가는 별로 중요하지 않다.

    For RAID-0/linear, one must be careful to specify the drives in exactly the same order. Thus, in the above example, if the original config is

    mdadd /dev/md0 /dev/hda /dev/hdb
                
    
    Then the new config *must* be
    mdadd /dev/md0 /dev/hda /dev/hdc
                
    

    For RAID-1/4/5, the drive's ''RAID number'' is stored in its RAID superblock, and therefore the order in which the disks are specified is not important.

    RAID-0/linear does not have a superblock due to it's older design, and the desire to maintain backwards compatibility with this older design.

  4. Q: 디스크 두개를 사용하는 RAID-1 시스템을 세개의 디스크를 사용하는 RAID-5 시스템으로 바꿀수 있는가?
    A: 할수 있다. BizSystems 의 Michael은 이걸 쉽게 하는 방법을 만들어냈다. 그러나, 실수로 인해 데이터를 날릴 수 있으므로, 필히 백업해놓기를 바란다.

    Yes. Michael at BizSystems has come up with a clever, sneaky way of doing this. However, like virtually all manipulations of RAID arrays once they have data on them, it is dangerous and prone to human error. Make a backup before you start.

    
    I will make the following assumptions:
    ---------------------------------------------
    disks 
    original: hda - hdc
    raid1 partitions hda3 - hdc3
    array name /dev/md0
    
    new hda - hdc - hdd
    raid5 partitions hda3 - hdc3 - hdd3
    array name: /dev/md1
    
    You must substitute the appropriate disk and partition numbers for 
    you system configuration. This will hold true for all config file 
    examples.
    --------------------------------------------
    DO A BACKUP BEFORE YOU DO ANYTHING
    1) recompile kernel to include both raid1 and raid5
    2) install new kernel and verify that raid personalities are present
    3) disable the redundant partition on the raid 1 array. If this is a
     root mounted partition (mine was) you must be more careful.
    
     Reboot the kernel without starting raid devices or boot from rescue 
     system ( raid tools must be available )
    
     start non-redundant raid1
    mdadd -r -p1 /dev/md0 /dev/hda3
    
    4) configure raid5 but with 'funny' config file, note that there is 
      no hda3 entry and hdc3 is repeated. This is needed since the
      raid tools don't want you to do this.
    -------------------------------
    # raid-5 configuration
    raiddev                 /dev/md1
    raid-level              5
    nr-raid-disks           3
    chunk-size              32
    
    # Parity placement algorithm
    parity-algorithm        left-symmetric
    
    # Spare disks for hot reconstruction
    nr-spare-disks          0
    
    device                  /dev/hdc3
    raid-disk               0
    
    device                  /dev/hdc3
    raid-disk               1
    
    device                  /dev/hdd3
    raid-disk               2
    ---------------------------------------
     mkraid /etc/raid5.conf
    5) activate the raid5 array in non-redundant mode
    
    mdadd -r -p5 -c32k /dev/md1 /dev/hdc3 /dev/hdd3
    
    6) make a file system on the array
    
    mke2fs -b {blocksize} /dev/md1
    
    recommended blocksize by some is 4096 rather than the default 1024.
    this improves the memory utilization for the kernel raid routines and 
    matches the blocksize to the page size. I compromised and used 2048 
    since I have a relatively high number of small files on my system.
    
    7) mount the two raid devices somewhere
    
    mount -t ext2 /dev/md0 mnt0
    mount -t ext2 /dev/md1 mnt1
    
    8) move the data
    
    cp -a mnt0 mnt1
    
    9) verify that the data sets are identical
    10) stop both arrays
    11) correct the information for the raid5.conf file
      change /dev/md1 to /dev/md0
      change the first disk to read /dev/hda3
    
    12) upgrade the new array to full redundant status
     (THIS DESTROYS REMAINING raid1 INFORMATION)
    
    ckraid --fix /etc/raid5.conf
    
                
    


다음 이전 차례