XenCenter

씬 프로비저닝된 공유 GFS2 블록 스토리지

씬 프로비저닝은 VDI의 전체 가상 크기를 미리 할당하는 대신 가상 디스크에 데이터가 기록될 때 디스크 스토리지 공간을 VDI에 할당하여 사용 가능한 스토리지를 더욱 효과적으로 활용합니다. 씬 프로비저닝을 사용하면 공유 스토리지 시스템에 필요한 공간을 대폭 절감하고 총 소유 비용 (TCO) 을 절감할 수 있습니다.

공유 블록 스토리지에 대한 씬 프로비저닝은 다음과 같은 경우에 특히 중요합니다.

  • 공간 효율성을 높이고자 합니다. 이미지는 희소하게 할당되고 두껍게 할당되지 않습니다.
  • 스토리지 어레이에서 초당 I/O 작업 수를 줄이려고 합니다. GFS2 SR은 공유 블록 스토리지에서 스토리지 읽기 캐싱을 지원하는 최초의 SR 유형입니다.
  • 여러 가상 시스템에 공통 기본 이미지를 사용합니다. 그러면 개별 VM의 이미지는 일반적으로 훨씬 적은 공간을 사용합니다.
  • 스냅샷을 사용합니다. 각 스냅샷은 이미지이며 이제 각 이미지는 희소 상태가 됩니다.
  • 크기가 2TiB보다 큰 VDI를 생성하려고 합니다. GFS2 SR은 최대 16TiB 크기의 VDI를 지원합니다.
  • 스토리지는 NFS 또는 SMB3를 지원하지 않으며 블록 스토리지만 지원합니다. 스토리지가 NFS 또는 SMB3를 지원하는 경우 GFS2 대신 이러한 SR 유형을 사용하는 것이 좋습니다.

참고:

클러스터 네트워크가 비관리 VLAN에 있는 경우 클러스터된 풀에서 호스트를 추가하거나 제거할 수 없는 알려진 문제가 있으므로 VLAN과 함께 GFS2 SR을 사용하지 않는 것이 좋습니다.

공유 GFS2 유형은 디스크를 iSCSI 또는 HBA LUN에서 생성된 파일 시스템으로 나타냅니다. GFS2 SR에 저장된 VDI는 QCOW2 이미지 형식으로 저장됩니다.

1. GFS2 환경 계획

데이터 손실 위험 없이 공유 블록 스토리지에서 씬 프로비저닝의 이점을 제공하려면 풀이 우수한 수준의 안정성과 연결성을 제공해야 합니다. GFS2를 사용하는 리소스 풀의 호스트는 서로 안정적으로 통신할 수 있어야 합니다. 이를 보장하려면 XenServer에서 GFS2 SR과 함께 클러스터링된 풀을 사용해야 합니다. 또한 가능한 한 많은 복원력과 이중화를 제공하도록 환경을 설계하고 XenServer 기능을 구성하는 것이 좋습니다.

GFS2 SR과 함께 작동하도록 XenServer 풀을 설정하기 전에 이상적인 GFS2 환경을 위한 다음 요구 사항 및 권장 사항을 검토하십시오.

GFS2 SR로 클러스터링된 풀은 다른 유형의 풀 및 SR과 동작에서 약간의 차이가 있습니다. 자세한 내용은 제약 조건을 참조하십시오.

2. 중복 네트워킹 인프라 구성

본드 네트워크는 두 개 이상의 NIC를 연결하여 네트워크 트래픽을 위한 단일 채널을 생성합니다. 클러스터링된 풀 트래픽에는 본드 네트워크를 사용하는 것이 좋습니다. 그러나 연결된 네트워크를 설정하기 전에 네트워크 하드웨어 구성이 연결된 네트워크에서 이중화를 권장하는지 확인하십시오. 이러한 권장 사항을 조직 및 환경에 맞게 가능한 한 많이 구현하는 것을 고려해 보십시오.

다음 모범 사례는 네트워크 스위치에 영향을 줄 수 있는 소프트웨어, 하드웨어 또는 전원 장애에 대한 복원력을 높여줍니다.

  • 동일한 스위치의 포트뿐만 아니라 연결된 네트워크에서 사용할 수 있는 별도의 물리적 네트워크 스위치가 있는지 확인하십시오.
  • 별도의 스위치가 서로 다른 독립 배전 장치(PDU)에서 전원을 공급받는지 확인하십시오.
  • 가능하면 데이터 센터에서 PDU를 전원 공급 장치의 여러 단계에 배치하거나 다른 유틸리티 회사에서 제공하는 공급 장치에 배치하십시오.
  • 정전 발생 시 네트워크 스위치와 서버가 계속 작동하거나 정상적으로 종료되도록 하려면 무정전 전원 공급 장치를 사용하는 것이 좋습니다.

3. 전용 본드 네트워크 생성

클러스터된 풀의 호스트가 서로 안정적으로 통신할 수 있는지 확인하는 것이 중요합니다. 이 풀 트래픽에 대해 본드된 네트워크를 생성하면 클러스터링된 풀의 복원력이 향상됩니다.

연결된 네트워크는 두 개 이상의 NIC 간에 연결을 형성하여 클러스터 풀이 클러스터 하트비트 트래픽에 사용할 수 있는 고성능 단일 채널을 만듭니다. 이 본드 네트워크를 다른 트래픽에는 사용하지 않는 것이 좋습니다. 풀이 관리 트래픽에 사용할 별도의 네트워크를 생성합니다.

참고:

풀의 호스트 간에 방화벽이 있는 경우 호스트가 다음 포트를 사용하여 클러스터 네트워크에서 통신할 수 있는지 확인합니다.

  • TCP: 8892, 8896, 21064
  • UDP: 5404, 5405

자세한 내용은 XenServer에서 사용하는 통신 포트를 참조하십시오.

클러스터링 네트워크로 사용할 본드 네트워크를 만드는 방법:

  1. 새 네트워크 마법사를 엽니다.
  2. 마법사의 첫 번째 페이지에서 연결 네트워크 를 선택한 후 다음을 클릭합니다.
  3. 본드 멤버 페이지에서 함께 결합할 NIC를 선택합니다. NIC를 선택하려면 목록에서 해당 확인란을 선택합니다. 이 목록에서 최대 4개의 NIC를 선택할 수 있습니다. NIC의 선택을 취소하려면 확인란의 선택을 취소합니다.
  4. Bond mode(본드 모드)에서 본드 유형을 선택합니다.

    • 액티브-액티브 본드를 구성하려면 액티브-액티브를 선택합니다. 이 본드를 사용하면 본딩된 NIC 간에 트래픽이 균형을 이룹니다. 본드 내의 한 NIC에 장애가 발생하면 서버의 네트워크 트래픽이 자동으로 두 번째 NIC를 통해 라우팅됩니다.
    • 트래픽이 결합된 NIC 중 하나만 통과하는 액티브-패시브 연결을 구성하려면 액티브-패시브를 선택합니다. 이 모드에서는 활성 NIC에 장애가 발생한 경우 (예: 네트워크 연결이 끊어지는 경우) 에만 보조 NIC가 활성화됩니다.
    • LACP 본드를 구성하려면 소스 MAC 주소를 기반으로 로드 밸런싱을 사용하는 LACP를 선택합니다. 이 본드를 사용하면 트래픽이 시작된 VM의 MAC 주소를 기반으로 나가는 NIC가 선택됩니다. 동일한 호스트에 여러 VM이 있는 환경에서 트래픽 부하를 분산시키려면 이 옵션을 사용합니다. NIC 수보다 VIF(가상 인터페이스) 수가 적은 경우 트래픽을 NIC 간에 분산시킬 수 없어 부하 분산이 최적화되지 않으므로 이 옵션이 적절하지 않습니다.
    • LACP 본드를 구성하려면 IP 및 소스 및 대상의 포트를 기반으로 하는 로드 밸런싱이 있는 LACP를 선택합니다. 이 본드는 소스 IP 주소, 소스 포트 번호, 대상 IP 주소 및 대상 포트 번호를 사용하여 NIC에 트래픽을 할당합니다. NIC 수가 VIF 수를 초과하는 환경에서 VM의 트래픽 부하를 분산시키려면 이 옵션을 사용합니다.

    참고:

    • XenCenter에서 LACP 연결 옵션을 보고 LACP 본딩을 만들려면 vSwitch를 네트워크 스택으로 구성합니다. 또한 스위치가 IEEE 802.3ad 표준을 지원해야 합니다.
    • 액티브-액티브 및 액티브-패시브 연결 유형은 vSwitch 및 Linux 브리지 모두에서 사용할 수 있습니다.
    • vSwitch가 네트워크 스택인 경우 NIC를 2개, 3개 또는 4개 연결할 수 있습니다. 그러나 Linux 브리지가 네트워크 스택인 경우에는 두 개의 NIC만 연결할 수 있습니다.
  5. 점보 프레임을 사용하려면MTU(최대 전송 단위)를 1500-9216 사이의 값으로 설정합니다.
  6. 새 VM 마법사를 사용하여 생성된 새 VM에 새 네트워크를 추가하려면 이 네트워크를 새 가상 컴퓨터에 자동으로 추가 확인란을 선택합니다.
  7. 마침을 클릭하여 새 네트워크를 만들고 마법사를 닫습니다.

풀 코디네이터에서 연결된 네트워크를 만든 후 다른 XenServer 호스트를 풀에 조인하면 네트워크 및 연결 정보가 가입 서버에 자동으로 복제됩니다.

자세한 내용은 NIC 구성을 참조하십시오.

참고:

  • XenCenter를 사용하여 클러스터 네트워크의 IP 주소를 변경하려면 클러스터링과 GFS2를 일시적으로 사용하지 않도록 설정해야 합니다.
  • 클러스터가 작동 중이고 VM이 실행 중인 동안에는 클러스터링 네트워크의 연결을 변경하지 마십시오. 이 작업을 수행하면 클러스터의 호스트가 강제 재부팅(차단)될 수 있습니다.
  • 클러스터링이 활성화된 호스트가 하나 이상 있는 클러스터링 네트워크에서 IP 주소 충돌(동일한 IP 주소를 가진 여러 호스트)이 있는 경우 클러스터가 제대로 구성되지 않아 필요할 때 호스트를 차단할 수 없습니다. 이 문제를 해결하려면 IP 주소 충돌을 해결하십시오.

4. 클러스터링된 풀 설정

공유 GFS2 스토리지를 사용하려면 XenServer 리소스 풀이 클러스터된 풀이어야 합니다. GFS2 SR을 생성하기 전에 풀에서 클러스터링을 활성화합니다.

클러스터링된 풀을 생성하는 방법:

  1. 도구 모음에서 새 풀을 클릭하여 새 풀 대화 상자를 엽니다.
  2. 새 풀의 이름과 설명(선택 사항)을 입력합니다. 리소스 창에 이름이 표시됩니다.
  3. 코디네이터 목록에서 서버를 선택하여 풀 코디네이터를 지명합니다.
  4. 추가 구성원 목록에서 새 풀에 배치할 서버를 더 선택합니다. 사용 가능한 모든 관리 서버가 나열됩니다. 목록에 없는 서버는 새 서버 추가를 클릭하여 목록에 추가할 수 있습니다. 관리 대상 서버가 목록에 없으면 풀 요구 사항에 나열된 하나 이상의 풀 조인 요구 사항을 충족하지 않기 때문일 수 있습니다.
  5. 풀 생성을 선택하여 풀을 생성하고 대화 상자를 닫습니다.
  6. 리소스 패널에서 풀을 선택하고 해당 일반 탭에서 속성을 선택합니다. 풀 속성 창이 열립니다.
  7. 클러스터링 탭에서 클러스터링 활성화를 선택하고 생성한 전용 본드 네트워크를 클러스터 네트워크로 선택합니다.
  8. 확인을 클릭합니다.

5. 스토리지 다중 경로 지정 구성

클러스터된 풀과 GFS2 SR 사이에 스토리지 다중 경로가 설정되어 있는지 확인합니다.

다중 경로 지정은 이중화를 위해 스토리지 트래픽을 다중 경로를 통해 스토리지 장치로 라우팅합니다. 정상 작동 중에는 모든 경로에 활성 트래픽이 있으므로 처리량이 증가합니다.

다중 경로 지정을 사용하도록 설정하기 전에 다음 명령문이 참인지 확인합니다.

  • 이더넷 또는 파이버 스위치는 스토리지 서버에서 여러 대상을 사용할 수 있도록 구성되어 있습니다.

    예를 들어 지정된 sendtargets 포털에서 쿼리된 iSCSI 스토리지 백엔드는 다음 예와 같이 여러 대상을 반환합니다.

      iscsiadm -m discovery --type sendtargets --portal 192.168.0.161
      192.168.0.161:3260,1 iqn.strawberry:litchie
      192.168.0.204:3260,2 iqn.strawberry:litchie
    

    그러나 단일 대상만 노출하는 어레이에 대해 iSCSI 다중 경로를 사용하도록 추가 구성을 수행할 수 있습니다. 자세한 내용은 단일 대상만 노출하는 어레이의 iSCSI 다중 경로단원을 참조하십시오.

  • iSCSI의 경우에만 제어 도메인 (dom0) 에는 다중 경로 스토리지에서 사용하는 각 서브넷에 IP 주소가 있습니다.

    스토리지의 각 경로에 NIC가 있고 각 NIC에 IP 주소가 구성되어 있는지 확인합니다. 예를 들어 스토리지에 대한 네 개의 경로가 필요한 경우 각각 IP 주소가 구성된 네 개의 NIC가 있어야 합니다.

  • iSCSI의 경우에만 모든 iSCSI 대상 및 이니시에이터에는 고유한 IQN이 있습니다.

  • iSCSI의 경우에만 iSCSI 대상 포트가 포털 모드에서 작동합니다.

  • HBA의 경우에만 여러 HBA가 스위치 패브릭에 연결됩니다.

  • 가능하면 여러 개의 이중 스위치를 사용하십시오.

다중 경로 지정을 활성화하는 방법:

풀의 모든 서버에 대해 다음 단계를 완료하십시오.

  1. 리소스 창에서 서버를 선택한 다음 유지 관리 모드로 전환합니다. XenCenter가 활성 가상 시스템을 마이그레이션하고 기존 스토리지의 플러그를 뽑는 동안 약간의 지연이 발생합니다. 서버가 풀 코디네이터인 경우 연결이 끊어지고 새 풀 코디네이터가 할당되는 동안 리소스 창에서 일시적으로 사라질 수 있습니다. 서버가 리소스 창에 서버 유지 관리 모드 아이콘(서버 유지 관리 모드 아이콘 - 상단에 파란색 사각형이 있는 서버 아이콘)과 함께 다시 나타나면 다음 단계로 진행합니다.
  2. 일반 탭에서 속성을 선택한 다음 다중 경로 지정 탭을 선택합니다.
  3. 다중 경로 지정을 사용하려면 이 서버에서 다중 경로 지정 사용 확인란을 선택합니다. 다중 경로 지정을 비활성화하려면 확인란의 선택을 취소합니다.
  4. 확인을 클릭하여 새 설정을 적용하고 대화 상자를 닫습니다. XenCenter가 새 스토리지 구성을 저장하는 동안 약간의 지연이 발생합니다.
  5. 서버를 유지 보수 모드에서 다시 해제합니다. 리소스 창에서 서버를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 유지 관리 모드 종료를 선택합니다.

풀의 모든 호스트에서 다중 경로 지정을 활성화해야 합니다. 모든 케이블 연결 및 iSCSI의 경우 서브넷 구성이 각 호스트의 해당 NIC와 일치해야 합니다.

6. GFS2 SR 만들기

리소스 풀의 모든 XenServer 호스트에서 볼 수 있는 iSCSI 또는 HBA LUN에 공유 GFS2 SR을 만듭니다. GFS2와 함께 씬 프로비저닝된 LUN을 사용하지 않는 것이 좋습니다. 그러나 이 구성을 선택하는 경우 LUN에 XenServer가 쓸 수 있는 충분한 공간이 항상 있는지 확인해야 합니다.

클러스터링된 풀에 최대 62개의 GFS2 SR을 추가할 수 있습니다.

소프트웨어 iSCSI SR을 생성하려면

참고:

다음 단계를 수행하기 전에 iSCSI 이니시에이터 IQN이 풀의 모든 호스트에 대해 적절하게 설정되어 있는지 확인합니다. 자세한 내용은 서버 속성 변경을 참조하십시오.

  1. 새 스토리지 저장소 마법사를 엽니다. 도구 모음에서 새 스토리지를 클릭합니다. 또는,
    • 선택한 풀 또는 서버의 스토리지 탭에서 새 SR을 클릭합니다.
    • 스토리지 메뉴에서 새 SR을 클릭합니다.
    • 리소스 창에서 서버 또는 풀을 선택한 다음 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 새 SR을 클릭합니다.
  2. 물리적 스토리지 유형으로 소프트웨어 iSCSI 를 선택한 후 다음을 클릭합니다.
  3. 이름 페이지에서 새 SR의 이름을 입력합니다. 기본적으로 마법사는 SR에 대한 설명을 생성합니다. 이 설명에는 마법사를 진행하면서 선택하는 구성 옵션에 대한 요약이 포함되어 있습니다. 설명을 직접 입력하려면 설명 자동 생성 확인란의 선택을 취소하고 설명 상자에 입력합니다. 다음을 클릭하여 계속합니다.
  4. Provisioning 페이지에서 씬 Provisioning(GFS2)을 선택합니다.
  5. 위치 페이지에서 iSCSI 대상 세부 정보를 지정합니다.

    • 대상 호스트: iSCSI 대상의 IP 주소 또는 DNS 이름입니다. 쉼표로 구분된 값 목록일 수도 있습니다.

    • CHAP 사용: GFS2 SR에서는 지원되지 않습니다. 이 옵션은 선택하지 않은 상태로 둡니다.

    • 대상 IQN: iSCSI 대상 IQN을 지정하려면 IQN 검색 버튼을 클릭한 다음 대상 IQN 목록에서 IQN을 선택합니다.

      중요:

      iSCSI 대상과 풀의 모든 서버에 동일한 IQN 세트가 없어야 합니다. 모든 iSCSI 대상 및 이니시에이터에는 고유한 IQN이 있어야 합니다. 고유하지 않은 IQN 식별자를 사용하면 데이터가 손상되거나 타겟에 대한 액세스가 거부되거나 둘 다 거부될 수 있습니다.

    • 대상 LUN: 스토리지 저장소를 생성할 LUN을 지정하려면 LUN 검색 버튼을 클릭합니다. 타겟 LUN 목록에서 LUN을 선택합니다.

      각 개별 iSCSI 스토리지 저장소는 모두 단일 LUN에 포함되어야 합니다. SR은 둘 이상의 LUN에 걸쳐 있을 수 없습니다. LUN에 이미 SR이 포함되어 있는 경우 기존 SR을 사용하거나 기존 SR을 새 SR로 교체할 것인지 선택합니다. 기존 SR을 교체하면 디스크에 있는 모든 데이터가 삭제됩니다.

  6. 마침을 클릭하여 새 SR 구성을 완료하고 마법사를 닫습니다.

하드웨어 HBA SR을 생성하려면

  1. 새 스토리지 저장소 마법사를 열려면 다음 작업 중 하나를 수행할 수 있습니다.
    • 도구 모음에서 새 저장소를 선택합니다.
    • 선택한 풀 또는 서버의 스토리지 탭에서 새 SR을 선택합니다.
    • 스토리지 메뉴에서 새 SR을 선택합니다.
    • 리소스 창에서 서버 또는 풀을 선택한 다음 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 새 SR을 선택합니다.
  2. 물리적 스토리지 유형으로 하드웨어 HBA를 선택한 후 다음을 선택합니다.
  3. 이름 페이지에서 새 SR의 이름을 입력합니다. 기본적으로 마법사는 SR에 대한 설명을 생성합니다. 이 설명에는 마법사를 진행하면서 선택하는 구성 옵션에 대한 요약이 포함되어 있습니다. 설명을 직접 입력하려면 설명 자동 생성 확인란의 선택을 취소하고 설명 상자에 입력합니다. 다음을 눌러 Provisioning 페이지로 이동합니다.
  4. Provisioning 페이지에서 씬 Provisioning(GFS2)을 선택합니다.
  5. 다음을 클릭하여 위치 페이지로 이동합니다.
  6. 마법사가 사용 가능한 LUN을 검색한 다음 발견된 모든 LUN을 나열하는 페이지를 표시합니다. 목록에서 LUN을 선택하고 만들기를 클릭합니다.

    참고:

    선택한 LUN에 기존 SR이 있으면 경고 메시지가 표시됩니다. 세부 정보를 검토하고 다음 옵션 중 하나를 선택합니다.

    • 기존 항목을 사용하려면 다시 연결(Reattach) 을 클릭합니다.
    • 기존 SR을 삭제하고 SR을 생성하려면 형식을 클릭합니다.
    • 다른 LUN을 선택하려면 취소 를 클릭하고 목록에서 LUN을 선택합니다.
  7. 요약 페이지에는 새 SR에 대한 정보가 표시됩니다. 정보를 읽은 다음 마침을 클릭하여 SR 작성 프로세스를 완료합니다.

제약 조건

공유 GFS2 스토리지에는 현재 다음과 같은 제약이 있습니다.

  • 씬 프로비저닝된 SR과 마찬가지로 GFS2 SR 사용량이 100% 로 증가하면 VM의 추가 쓰기가 실패합니다. 이러한 쓰기 실패로 인해 VM 내에서 오류가 발생하거나 데이터가 손상되거나 두 가지 모두 발생할 수 있습니다.

  • SR 사용량이 80% 까지 증가하면 XenCenter에 경고가 표시됩니다. 이 경고에 대해 GFS2 SR을 모니터링하고 표시되는 경우 적절한 조치를 취하십시오. GFS2 SR에서 사용량이 높으면 성능이 저하됩니다. SR 사용량을 80% 이하로 유지하는 것이 좋습니다.

  • VDI가 GFS2 SR에 있는 VM에는 스토리지 마이그레이션(라이브 또는 오프라인)을 통한 VM 마이그레이션이 지원되지 않습니다. 또한 vDI를 다른 유형의 SR에서 GFS2 SR로 마이그레이션할 수 없습니다.

  • FCoE 전송은 GFS2 SR에서 지원되지 않습니다.

  • GFS2 SR에서는 트림/매핑 해제를 지원하지 않습니다.

  • GFS2 SR에서는 CHAP가 지원되지 않습니다.

  • 변경된 블록 추적은 GFS2 SR에 저장된 vDI에 대해 지원되지 않습니다.

  • 2TiB보다 큰 VDI는 VHD 또는 OVA/OVF로 내보낼 수 없습니다. 그러나 VDI가 2TiB보다 큰 VM을 XVA 형식으로 내보낼 수 있습니다.

  • GFS2와 함께 씬 프로비저닝된 LUN을 사용하지 않는 것이 좋습니다. 그러나 이 구성을 선택하는 경우 LUN에 XenServer가 쓸 수 있는 충분한 공간이 항상 있는지 확인해야 합니다.

  • GFS2 SR에서는 SAN 중복 제거를 사용하지 않는 것이 좋습니다. 그러나 이 구성을 선택할 경우 SAN 사용률에 대한 적절한 외부 모니터링을 사용하여 XenServer에 쓸 공간이 항상 있는지 확인해야 합니다.

  • GFS2 파일 시스템은 100TiB보다 클 수 없습니다.

  • 풀에 62개 이상의 GFS2 SR을 보유할 수 없습니다.

  • 클러스터된 풀은 풀당 최대 16개의 호스트만 지원합니다.

  • 클러스터 트래픽의 경우 두 개 이상의 서로 다른 네트워크 스위치를 사용하는 연결된 네트워크를 사용하기를 강력하게 권장합니다. 이 네트워크를 다른 용도로 사용하지 마십시오.

  • XenCenter를 사용하여 클러스터 네트워크의 IP 주소를 변경하려면 클러스터링과 GFS2를 일시적으로 사용하지 않도록 설정해야 합니다.

  • 클러스터가 작동 중이고 VM이 실행 중인 동안에는 클러스터링 네트워크의 연결을 변경하지 마십시오. 이 작업을 수행하면 클러스터의 호스트가 강제 재부팅(차단)될 수 있습니다.

  • 클러스터링이 활성화된 호스트가 하나 이상 있는 클러스터링 네트워크에서 IP 주소 충돌(동일한 IP 주소를 가진 여러 호스트)이 있는 경우 클러스터가 제대로 구성되지 않아 필요할 때 호스트를 차단할 수 없습니다. 이 문제를 해결하려면 IP 주소 충돌을 해결하십시오.

씬 프로비저닝된 공유 GFS2 블록 스토리지