Patent ID: 7979548

Claim:
A method of logically partitioning a plurality of resources, comprising: providing a single hardware channel adapter included in a System Area Network (SAN), said single hardware channel adapter comprising said plurality of resources, wherein said single hardware channel adapter is shared by different partitions, and wherein at least a first of the plurality of resources is assigned to a first partition and at least a second one of the plurality of resources is assigned to a second, different partition; storing, by a hypervisor, a first partition identifier that identifies the first partition in a first hardware register that is included within the at least the first one of the plurality of resources, wherein the at least the first one of the plurality of resources is assigned to the first partition; and enforcing, by the hardware channel adapter, partitioning of the plurality of resources by allowing only third ones of the plurality of resources that have the first partition identifier stored in a hardware register that is included within the third ones of the plurality of resources to access the at least the first one of the plurality of resources, wherein fourth ones of the plurality of resources that do not have the first partition identifier stored in a hardware register that is included within the fourth ones of the plurality of partitions cannot access the first one of the plurality of resources, and wherein the fourth ones of the plurality of resources include the at least the second one of the plurality of resources; wherein the hardware channel adapter is included in a node that includes a central processing unit, and wherein the hardware channel adapter couples the central processing unit to a switch; requesting, by an operating system, a particular one of said plurality of resources of a particular type, wherein the operating system is assigned to a particular partition; responsive to the request, selecting, by the hypervisor, a particular one of said plurality of resources that is said particular type; responsive to the selection, determining a particular one of the partitions to which said operating system is assigned; and responsive to the determination, storing, by the hypervisor, a particular partition identifier that identifies said particular one of the partitions in a hardware register within said particular one of said plurality of resources.